diff --git a/pkg/engine/funcs.go b/pkg/engine/funcs.go index 49c7b15ff..7f2b353d9 100644 --- a/pkg/engine/funcs.go +++ b/pkg/engine/funcs.go @@ -160,9 +160,6 @@ func normalizeYAMLMapKey(key any) any { if reflect.TypeOf(normalized).Comparable() { return normalized } - if reflect.TypeOf(key).Comparable() { - return key - } return fmt.Sprint(normalized) } diff --git a/pkg/engine/funcs_test.go b/pkg/engine/funcs_test.go index 17b1de929..835ee4c19 100644 --- a/pkg/engine/funcs_test.go +++ b/pkg/engine/funcs_test.go @@ -143,6 +143,7 @@ keyInElement1 = "valueInElement1"`, } func TestNormalizeYAMLScalars(t *testing.T) { + firstUnsafeInteger := float64(maxSafeYAMLInteger + 1) aboveSafeInteger := math.Nextafter(maxSafeYAMLInteger, math.Inf(1)) tests := []struct { @@ -165,6 +166,11 @@ func TestNormalizeYAMLScalars(t *testing.T) { input: map[string]any{"value": float64(maxSafeYAMLInteger)}, expect: map[string]any{"value": int64(maxSafeYAMLInteger)}, }, + { + name: "first unsafe integer float stays float", + input: map[string]any{"value": firstUnsafeInteger}, + expect: map[string]any{"value": firstUnsafeInteger}, + }, { name: "unsafe integer floats stay floats", input: map[string]any{"value": aboveSafeInteger},