diff --git a/builtins.go b/builtins.go index b640da5..54da0eb 100644 --- a/builtins.go +++ b/builtins.go @@ -1620,7 +1620,7 @@ func builtinParseInt(i *interpreter, x value) (value, error) { } res, err := strconv.ParseInt(str.getGoString(), 10, 64) if err != nil { - return nil, err + return nil, i.Error(fmt.Sprintf("%s is not a base 10 integer", str.getGoString())) } return makeValueNumber(float64(res)), nil } diff --git a/testdata/builtin_parseInt.golden b/testdata/builtin_parseInt.golden new file mode 100644 index 0000000..190a180 --- /dev/null +++ b/testdata/builtin_parseInt.golden @@ -0,0 +1 @@ +123 diff --git a/testdata/builtin_parseInt.jsonnet b/testdata/builtin_parseInt.jsonnet new file mode 100644 index 0000000..8d1986f --- /dev/null +++ b/testdata/builtin_parseInt.jsonnet @@ -0,0 +1 @@ +std.parseInt("123") \ No newline at end of file diff --git a/testdata/builtin_parseInt2.golden b/testdata/builtin_parseInt2.golden new file mode 100644 index 0000000..3a437cd --- /dev/null +++ b/testdata/builtin_parseInt2.golden @@ -0,0 +1 @@ +-123 diff --git a/testdata/builtin_parseInt2.jsonnet b/testdata/builtin_parseInt2.jsonnet new file mode 100644 index 0000000..e5624b8 --- /dev/null +++ b/testdata/builtin_parseInt2.jsonnet @@ -0,0 +1 @@ +std.parseInt("-123") \ No newline at end of file diff --git a/testdata/builtin_parseInt_invalid.golden b/testdata/builtin_parseInt_invalid.golden new file mode 100644 index 0000000..8d289b9 --- /dev/null +++ b/testdata/builtin_parseInt_invalid.golden @@ -0,0 +1,10 @@ +RUNTIME ERROR: hello is not a base 10 integer +------------------------------------------------- + testdata/builtin_parseInt_invalid:1:1-22 $ + +std.parseInt("hello") + +------------------------------------------------- + During evaluation + + diff --git a/testdata/builtin_parseInt_invalid.jsonnet b/testdata/builtin_parseInt_invalid.jsonnet new file mode 100644 index 0000000..fd7cc69 --- /dev/null +++ b/testdata/builtin_parseInt_invalid.jsonnet @@ -0,0 +1 @@ +std.parseInt("hello") \ No newline at end of file diff --git a/testdata/builtin_parseInt_invalid_decimal.golden b/testdata/builtin_parseInt_invalid_decimal.golden new file mode 100644 index 0000000..3edfd7a --- /dev/null +++ b/testdata/builtin_parseInt_invalid_decimal.golden @@ -0,0 +1,10 @@ +RUNTIME ERROR: 123.12 is not a base 10 integer +------------------------------------------------- + testdata/builtin_parseInt_invalid_decimal:1:1-23 $ + +std.parseInt("123.12") + +------------------------------------------------- + During evaluation + + diff --git a/testdata/builtin_parseInt_invalid_decimal.jsonnet b/testdata/builtin_parseInt_invalid_decimal.jsonnet new file mode 100644 index 0000000..5628321 --- /dev/null +++ b/testdata/builtin_parseInt_invalid_decimal.jsonnet @@ -0,0 +1 @@ +std.parseInt("123.12") \ No newline at end of file diff --git a/testdata/builtin_parseInt_invalid_hexadecimal.golden b/testdata/builtin_parseInt_invalid_hexadecimal.golden new file mode 100644 index 0000000..3a164fa --- /dev/null +++ b/testdata/builtin_parseInt_invalid_hexadecimal.golden @@ -0,0 +1,10 @@ +RUNTIME ERROR: 7B316 is not a base 10 integer +------------------------------------------------- + testdata/builtin_parseInt_invalid_hexadecimal:1:1-22 $ + +std.parseInt("7B316") + +------------------------------------------------- + During evaluation + + diff --git a/testdata/builtin_parseInt_invalid_hexadecimal.jsonnet b/testdata/builtin_parseInt_invalid_hexadecimal.jsonnet new file mode 100644 index 0000000..e5927f4 --- /dev/null +++ b/testdata/builtin_parseInt_invalid_hexadecimal.jsonnet @@ -0,0 +1 @@ +std.parseInt("7B316") \ No newline at end of file