From 91933f110790a4b77de30827cbf87d4f8992864d Mon Sep 17 00:00:00 2001 From: Puneet Dixit <236133619+puneetdixit200@users.noreply.github.com> Date: Sun, 24 May 2026 01:18:34 +0530 Subject: [PATCH] fix(engine): tighten YAML scalar edge cases Assisted-by: OpenAI GPT-5 Signed-off-by: Puneet Dixit <236133619+puneetdixit200@users.noreply.github.com> --- pkg/engine/funcs.go | 3 --- pkg/engine/funcs_test.go | 6 ++++++ 2 files changed, 6 insertions(+), 3 deletions(-) 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},