diff --git a/sjsonnet/src/sjsonnet/Evaluator.scala b/sjsonnet/src/sjsonnet/Evaluator.scala index 046274f5..1e75234b 100644 --- a/sjsonnet/src/sjsonnet/Evaluator.scala +++ b/sjsonnet/src/sjsonnet/Evaluator.scala @@ -712,29 +712,29 @@ class Evaluator( (op: @switch) match { case Expr.BinaryOp.OP_+ => val r = ld + rd - if (r.isNaN) Error.fail("not a number", pos) - if (r.isInfinite) Error.fail("overflow", pos) + if (r.isNaN) Error.fail("Not a number", pos) + if (r.isInfinite) Error.fail("Overflow", pos) Val.cachedNum(pos, r) case Expr.BinaryOp.OP_- => val r = ld - rd - if (r.isNaN) Error.fail("not a number", pos) - if (r.isInfinite) Error.fail("overflow", pos) + if (r.isNaN) Error.fail("Not a number", pos) + if (r.isInfinite) Error.fail("Overflow", pos) Val.cachedNum(pos, r) case Expr.BinaryOp.OP_* => val r = ld * rd - if (r.isNaN) Error.fail("not a number", pos) - if (r.isInfinite) Error.fail("overflow", pos) + if (r.isNaN) Error.fail("Not a number", pos) + if (r.isInfinite) Error.fail("Overflow", pos) Val.cachedNum(pos, r) case Expr.BinaryOp.OP_/ => if (rd == 0) Error.fail("Division by zero.", pos) val r = ld / rd - if (r.isNaN) Error.fail("not a number", pos) - if (r.isInfinite) Error.fail("overflow", pos) + if (r.isNaN) Error.fail("Not a number", pos) + if (r.isInfinite) Error.fail("Overflow", pos) Val.cachedNum(pos, r) case Expr.BinaryOp.OP_% => if (rd == 0) Error.fail("Division by zero.", pos) val r = ld % rd - if (r.isNaN) Error.fail("not a number", pos) + if (r.isNaN) Error.fail("Not a number", pos) Val.cachedNum(pos, r) // Use position-free static singletons for boolean results — this method is only called // from comprehension fast paths where position info on boolean results is unnecessary. @@ -871,29 +871,29 @@ class Evaluator( (e.op: @switch) match { case Expr.BinaryOp.OP_* => val r = visitExprAsDouble(e.lhs) * visitExprAsDouble(e.rhs) - if (r.isNaN) Error.fail("not a number", pos) - if (r.isInfinite) Error.fail("overflow", pos); r + if (r.isNaN) Error.fail("Not a number", pos) + if (r.isInfinite) Error.fail("Overflow", pos); r case Expr.BinaryOp.OP_/ => val l = visitExprAsDouble(e.lhs) val r = visitExprAsDouble(e.rhs) if (r == 0) Error.fail("Division by zero.", pos) val result = l / r - if (result.isNaN) Error.fail("not a number", pos) - if (result.isInfinite) Error.fail("overflow", pos); result + if (result.isNaN) Error.fail("Not a number", pos) + if (result.isInfinite) Error.fail("Overflow", pos); result case Expr.BinaryOp.OP_% => val l = visitExprAsDouble(e.lhs) val r = visitExprAsDouble(e.rhs) if (r == 0) Error.fail("Division by zero.", pos) val result = l % r - if (result.isNaN) Error.fail("not a number", pos); result + if (result.isNaN) Error.fail("Not a number", pos); result case Expr.BinaryOp.OP_+ => val r = visitExprAsDouble(e.lhs) + visitExprAsDouble(e.rhs) - if (r.isNaN) Error.fail("not a number", pos) - if (r.isInfinite) Error.fail("overflow", pos); r + if (r.isNaN) Error.fail("Not a number", pos) + if (r.isInfinite) Error.fail("Overflow", pos); r case Expr.BinaryOp.OP_- => val r = visitExprAsDouble(e.lhs) - visitExprAsDouble(e.rhs) - if (r.isNaN) Error.fail("not a number", pos) - if (r.isInfinite) Error.fail("overflow", pos); r + if (r.isNaN) Error.fail("Not a number", pos) + if (r.isInfinite) Error.fail("Overflow", pos); r case Expr.BinaryOp.OP_<< => val ll = visitExprAsDouble(e.lhs).toSafeLong(pos) val rr = visitExprAsDouble(e.rhs).toSafeLong(pos) @@ -1353,21 +1353,21 @@ class Evaluator( // Pure numeric fast path: avoid intermediate Val.Num allocation case Expr.BinaryOp.OP_* => val r = visitExprAsDouble(e.lhs) * visitExprAsDouble(e.rhs) - if (r.isNaN) Error.fail("not a number", pos) - if (r.isInfinite) Error.fail("overflow", pos) + if (r.isNaN) Error.fail("Not a number", pos) + if (r.isInfinite) Error.fail("Overflow", pos) Val.cachedNum(pos, r) case Expr.BinaryOp.OP_- => val r = visitExprAsDouble(e.lhs) - visitExprAsDouble(e.rhs) - if (r.isNaN) Error.fail("not a number", pos) - if (r.isInfinite) Error.fail("overflow", pos) + if (r.isNaN) Error.fail("Not a number", pos) + if (r.isInfinite) Error.fail("Overflow", pos) Val.cachedNum(pos, r) case Expr.BinaryOp.OP_/ => val l = visitExprAsDouble(e.lhs) val r = visitExprAsDouble(e.rhs) if (r == 0) Error.fail("Division by zero.", pos) val result = l / r - if (result.isNaN) Error.fail("not a number", pos) - if (result.isInfinite) Error.fail("overflow", pos) + if (result.isNaN) Error.fail("Not a number", pos) + if (result.isInfinite) Error.fail("Overflow", pos) Val.cachedNum(pos, result) // Polymorphic ops: nested match avoids Tuple2 allocation; Num checked first (most common) case Expr.BinaryOp.OP_% => @@ -1379,7 +1379,7 @@ class Evaluator( case Val.Num(_, rd) => if (rd == 0) Error.fail("Division by zero.", pos) val result = ld % rd - if (result.isNaN) Error.fail("not a number", pos) + if (result.isNaN) Error.fail("Not a number", pos) Val.cachedNum(pos, result) case _ => failBinOp(l, e.op, r, pos) } @@ -1393,8 +1393,8 @@ class Evaluator( (l, r) match { case (Val.Num(_, l), Val.Num(_, r)) => val result = l + r - if (result.isNaN) Error.fail("not a number", pos) - if (result.isInfinite) Error.fail("overflow", pos) + if (result.isNaN) Error.fail("Not a number", pos) + if (result.isInfinite) Error.fail("Overflow", pos) Val.cachedNum(pos, result) case (l: Val.Str, r: Val.Str) => Val.Str.concat(pos, l, r) case (n: Val.Num, r: Val.Str) => diff --git a/sjsonnet/src/sjsonnet/Val.scala b/sjsonnet/src/sjsonnet/Val.scala index 65fbc557..cd4e44c2 100644 --- a/sjsonnet/src/sjsonnet/Val.scala +++ b/sjsonnet/src/sjsonnet/Val.scala @@ -469,7 +469,7 @@ object Val { } final case class Num(var pos: Position, private val num: Double) extends Literal { if (num.isInfinite) { - Error.fail("overflow") + Error.fail("Overflow") } def prettyName = "number" @@ -510,7 +510,7 @@ object Val { override def asDouble: Double = { if (num.isNaN) { - Error.fail("not a number") + Error.fail("Not a number") } num } diff --git a/sjsonnet/src/sjsonnet/stdlib/ArrayModule.scala b/sjsonnet/src/sjsonnet/stdlib/ArrayModule.scala index bc4939c8..933123af 100644 --- a/sjsonnet/src/sjsonnet/stdlib/ArrayModule.scala +++ b/sjsonnet/src/sjsonnet/stdlib/ArrayModule.scala @@ -1140,7 +1140,7 @@ object ArrayModule extends AbstractFunctionModule { */ builtin("avg", "arr") { (_, _, arr: Val.Arr) => if (arr.length == 0) { - Error.fail("Cannot calculate average of an empty array") + Error.fail("Cannot calculate average of an empty array.") } arr match { case r: Val.RangeArr => diff --git a/sjsonnet/src/sjsonnet/stdlib/MathModule.scala b/sjsonnet/src/sjsonnet/stdlib/MathModule.scala index a021074d..815088e1 100644 --- a/sjsonnet/src/sjsonnet/stdlib/MathModule.scala +++ b/sjsonnet/src/sjsonnet/stdlib/MathModule.scala @@ -293,7 +293,7 @@ object MathModule extends AbstractFunctionModule { */ builtin("pow", "x", "n") { (pos, ev, x: Double, n: Double) => val r = math.pow(x, n) - if (java.lang.Double.isNaN(r)) Error.fail("not a number", pos)(ev) + if (java.lang.Double.isNaN(r)) Error.fail("Not a number", pos)(ev) r }, /** @@ -427,7 +427,7 @@ object MathModule extends AbstractFunctionModule { */ builtin("asin", "x") { (pos, ev, x: Double) => val r = math.asin(x) - if (java.lang.Double.isNaN(r)) Error.fail("not a number", pos)(ev) + if (java.lang.Double.isNaN(r)) Error.fail("Not a number", pos)(ev) r }, /** @@ -439,7 +439,7 @@ object MathModule extends AbstractFunctionModule { */ builtin("acos", "x") { (pos, ev, x: Double) => val r = math.acos(x) - if (java.lang.Double.isNaN(r)) Error.fail("not a number", pos)(ev) + if (java.lang.Double.isNaN(r)) Error.fail("Not a number", pos)(ev) r }, /** diff --git a/sjsonnet/test/resources/go_test_suite/builtin_exp3.jsonnet.golden b/sjsonnet/test/resources/go_test_suite/builtin_exp3.jsonnet.golden index 5e22515e..c29be84f 100644 --- a/sjsonnet/test/resources/go_test_suite/builtin_exp3.jsonnet.golden +++ b/sjsonnet/test/resources/go_test_suite/builtin_exp3.jsonnet.golden @@ -1,3 +1,3 @@ -sjsonnet.Error: [std.exp] overflow +sjsonnet.Error: [std.exp] Overflow at [].(builtin_exp3.jsonnet:1:8) diff --git a/sjsonnet/test/resources/go_test_suite/builtin_exp5.jsonnet.golden b/sjsonnet/test/resources/go_test_suite/builtin_exp5.jsonnet.golden index d09fb891..41797de7 100644 --- a/sjsonnet/test/resources/go_test_suite/builtin_exp5.jsonnet.golden +++ b/sjsonnet/test/resources/go_test_suite/builtin_exp5.jsonnet.golden @@ -1,3 +1,3 @@ -sjsonnet.Error: [std.exp] overflow +sjsonnet.Error: [std.exp] Overflow at [].(builtin_exp5.jsonnet:1:8) diff --git a/sjsonnet/test/resources/go_test_suite/builtin_log5.jsonnet.golden b/sjsonnet/test/resources/go_test_suite/builtin_log5.jsonnet.golden index 2757daea..938e6f09 100644 --- a/sjsonnet/test/resources/go_test_suite/builtin_log5.jsonnet.golden +++ b/sjsonnet/test/resources/go_test_suite/builtin_log5.jsonnet.golden @@ -1,3 +1,3 @@ -sjsonnet.Error: [std.log] overflow +sjsonnet.Error: [std.log] Overflow at [].(builtin_log5.jsonnet:1:8) diff --git a/sjsonnet/test/resources/go_test_suite/div4.jsonnet.golden b/sjsonnet/test/resources/go_test_suite/div4.jsonnet.golden index 3c27737c..2d96625b 100644 --- a/sjsonnet/test/resources/go_test_suite/div4.jsonnet.golden +++ b/sjsonnet/test/resources/go_test_suite/div4.jsonnet.golden @@ -1,3 +1,3 @@ -sjsonnet.Error: overflow +sjsonnet.Error: Overflow at [].(div4.jsonnet:1:11) diff --git a/sjsonnet/test/resources/go_test_suite/inf_min_number.jsonnet.golden b/sjsonnet/test/resources/go_test_suite/inf_min_number.jsonnet.golden index 98b85281..72a38bc2 100644 --- a/sjsonnet/test/resources/go_test_suite/inf_min_number.jsonnet.golden +++ b/sjsonnet/test/resources/go_test_suite/inf_min_number.jsonnet.golden @@ -1,3 +1,3 @@ -sjsonnet.Error: overflow +sjsonnet.Error: Overflow at [].(inf_min_number.jsonnet:1:8) diff --git a/sjsonnet/test/resources/go_test_suite/inf_mul_number.jsonnet.golden b/sjsonnet/test/resources/go_test_suite/inf_mul_number.jsonnet.golden index 6d10791f..3293c15d 100644 --- a/sjsonnet/test/resources/go_test_suite/inf_mul_number.jsonnet.golden +++ b/sjsonnet/test/resources/go_test_suite/inf_mul_number.jsonnet.golden @@ -1,3 +1,3 @@ -sjsonnet.Error: overflow +sjsonnet.Error: Overflow at [].(inf_mul_number.jsonnet:1:7) diff --git a/sjsonnet/test/resources/go_test_suite/inf_sum_number.jsonnet.golden b/sjsonnet/test/resources/go_test_suite/inf_sum_number.jsonnet.golden index 4db39150..a3d08d16 100644 --- a/sjsonnet/test/resources/go_test_suite/inf_sum_number.jsonnet.golden +++ b/sjsonnet/test/resources/go_test_suite/inf_sum_number.jsonnet.golden @@ -1,3 +1,3 @@ -sjsonnet.Error: overflow +sjsonnet.Error: Overflow at [].(inf_sum_number.jsonnet:1:7) diff --git a/sjsonnet/test/resources/go_test_suite/pow4.jsonnet.golden b/sjsonnet/test/resources/go_test_suite/pow4.jsonnet.golden index b54116a4..83af3d66 100644 --- a/sjsonnet/test/resources/go_test_suite/pow4.jsonnet.golden +++ b/sjsonnet/test/resources/go_test_suite/pow4.jsonnet.golden @@ -1,2 +1,3 @@ -sjsonnet.Error: [std.pow] not a number +sjsonnet.Error: [std.pow] Not a number at [].(pow4.jsonnet:1:8) + diff --git a/sjsonnet/test/resources/go_test_suite/pow7.jsonnet.golden b/sjsonnet/test/resources/go_test_suite/pow7.jsonnet.golden index 1773d54f..61a6e6d4 100644 --- a/sjsonnet/test/resources/go_test_suite/pow7.jsonnet.golden +++ b/sjsonnet/test/resources/go_test_suite/pow7.jsonnet.golden @@ -1,3 +1,3 @@ -sjsonnet.Error: [std.pow] overflow +sjsonnet.Error: [std.pow] Overflow at [].(pow7.jsonnet:2:8) diff --git a/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_addition.jsonnet.golden b/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_addition.jsonnet.golden index d6cfd626..998f143c 100644 --- a/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_addition.jsonnet.golden +++ b/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_addition.jsonnet.golden @@ -1,2 +1,2 @@ -sjsonnet.Error: overflow +sjsonnet.Error: Overflow at [].(error.arithmetic_overflow_addition.jsonnet:2:7) diff --git a/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_multiplication.jsonnet.golden b/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_multiplication.jsonnet.golden index 47400074..f1c4a392 100644 --- a/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_multiplication.jsonnet.golden +++ b/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_multiplication.jsonnet.golden @@ -1,2 +1,2 @@ -sjsonnet.Error: overflow +sjsonnet.Error: Overflow at [].(error.arithmetic_overflow_multiplication.jsonnet:2:7) diff --git a/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_subtraction.jsonnet.golden b/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_subtraction.jsonnet.golden index 43eeae58..52a9547a 100644 --- a/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_subtraction.jsonnet.golden +++ b/sjsonnet/test/resources/new_test_suite/error.arithmetic_overflow_subtraction.jsonnet.golden @@ -1,2 +1,2 @@ -sjsonnet.Error: overflow +sjsonnet.Error: Overflow at [].(error.arithmetic_overflow_subtraction.jsonnet:2:8) diff --git a/sjsonnet/test/resources/new_test_suite/error.math_acos_nan.jsonnet.golden b/sjsonnet/test/resources/new_test_suite/error.math_acos_nan.jsonnet.golden index 08f406e0..691062a6 100644 --- a/sjsonnet/test/resources/new_test_suite/error.math_acos_nan.jsonnet.golden +++ b/sjsonnet/test/resources/new_test_suite/error.math_acos_nan.jsonnet.golden @@ -1 +1,3 @@ -sjsonnet.Error: [std.acos] not a number +sjsonnet.Error: [std.acos] Not a number + at [].(error.math_acos_nan.jsonnet:2:9) + diff --git a/sjsonnet/test/resources/new_test_suite/error.math_asin_nan.jsonnet.golden b/sjsonnet/test/resources/new_test_suite/error.math_asin_nan.jsonnet.golden index 91f57ec7..b077d14e 100644 --- a/sjsonnet/test/resources/new_test_suite/error.math_asin_nan.jsonnet.golden +++ b/sjsonnet/test/resources/new_test_suite/error.math_asin_nan.jsonnet.golden @@ -1 +1,3 @@ -sjsonnet.Error: [std.asin] not a number +sjsonnet.Error: [std.asin] Not a number + at [].(error.math_asin_nan.jsonnet:2:9) + diff --git a/sjsonnet/test/resources/new_test_suite/error.math_pow_nan.jsonnet.golden b/sjsonnet/test/resources/new_test_suite/error.math_pow_nan.jsonnet.golden index 6de87c33..46464ff5 100644 --- a/sjsonnet/test/resources/new_test_suite/error.math_pow_nan.jsonnet.golden +++ b/sjsonnet/test/resources/new_test_suite/error.math_pow_nan.jsonnet.golden @@ -1 +1,3 @@ -sjsonnet.Error: [std.pow] not a number +sjsonnet.Error: [std.pow] Not a number + at [].(error.math_pow_nan.jsonnet:2:8) + diff --git a/sjsonnet/test/resources/test_suite/error.overflow2.jsonnet.golden b/sjsonnet/test/resources/test_suite/error.overflow2.jsonnet.golden index 98af58dc..e532b9cb 100644 --- a/sjsonnet/test/resources/test_suite/error.overflow2.jsonnet.golden +++ b/sjsonnet/test/resources/test_suite/error.overflow2.jsonnet.golden @@ -1,3 +1,3 @@ -sjsonnet.Error: overflow +sjsonnet.Error: Overflow at [].(error.overflow2.jsonnet:17:7) diff --git a/sjsonnet/test/src/sjsonnet/StdMathTests.scala b/sjsonnet/test/src/sjsonnet/StdMathTests.scala index 816a7d76..02caf315 100644 --- a/sjsonnet/test/src/sjsonnet/StdMathTests.scala +++ b/sjsonnet/test/src/sjsonnet/StdMathTests.scala @@ -57,9 +57,9 @@ object StdMathTests extends TestSuite { val errLog10 = evalErr("std.log10(-1)") assert(errLog10.contains("Not a number")) val errLog0 = evalErr("std.log(0)") - assert(errLog0.contains("overflow")) + assert(errLog0.contains("Overflow")) val errLog2Zero = evalErr("std.log2(0)") - assert(errLog2Zero.contains("overflow")) + assert(errLog2Zero.contains("Overflow")) // log(positive) must still work eval("std.log(1)") ==> ujson.Num(0.0) eval("std.log2(1)") ==> ujson.Num(0.0) diff --git a/sjsonnet/test/src/sjsonnet/TailCallOptimizationTests.scala b/sjsonnet/test/src/sjsonnet/TailCallOptimizationTests.scala index addb9497..3d39f2fe 100644 --- a/sjsonnet/test/src/sjsonnet/TailCallOptimizationTests.scala +++ b/sjsonnet/test/src/sjsonnet/TailCallOptimizationTests.scala @@ -28,7 +28,7 @@ object TailCallOptimizationTests extends TestSuite { |factorial(1000) |""".stripMargin ) - assert(err.contains("overflow")) + assert(err.contains("Overflow")) } test("tailstrictDeepRecursionSum") {