Skip to content

Commit dbfb89b

Browse files
rowanseymourCopilot
andcommitted
Update excellent/types/number.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent e845fba commit dbfb89b

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

excellent/base_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,10 @@ func TestEvaluationErrors(t *testing.T) {
439439
{`@(format_datetime("x"))`, `error evaluating @(format_datetime("x")): error calling format_datetime(...): unable to convert "x" to a datetime`},
440440
{`@(format_datetime(3))`, `error evaluating @(format_datetime(3)): error calling format_datetime(...): unable to convert 3 to a datetime`},
441441

442+
// number range errors
443+
{`@(2 ^ 400)`, `error evaluating @(2 ^ 400): number value out of range`},
444+
{`@(1234567890123456789012345678901234567)`, `error evaluating @(1234567890123456789012345678901234567): number 1234567890123456789012345678901234567 is out of range`},
445+
442446
// function call errors
443447
{`@(FOO())`, `error evaluating @(FOO()): foo is not a function`},
444448
{`@(count(1))`, `error evaluating @(count(1)): error calling count(...): value isn't countable`},

excellent/types/number.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func newXNumber(value decimal.Decimal) *XNumber {
4545
// is outside the range of values that can be persisted
4646
func NewXNumber(value decimal.Decimal) XValue {
4747
if err := CheckDecimalRange(value); err != nil {
48-
return NewXErrorf("number value too large")
48+
return NewXErrorf("number value out of range")
4949
}
5050
return newXNumber(value)
5151
}

excellent/visitor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ func (v *visitor) VisitTextLiteral(ctx *gen.TextLiteralContext) any {
220220
func (v *visitor) VisitNumberLiteral(ctx *gen.NumberLiteralContext) any {
221221
num, err := types.NewXNumberFromString(ctx.GetText())
222222
if err != nil {
223-
return &ErrorLiteral{Err: types.NewXErrorf("invalid number")}
223+
return &ErrorLiteral{Err: types.NewXErrorf("number %s is out of range", ctx.GetText())}
224224
}
225225
return &NumberLiteral{Value: num}
226226
}

0 commit comments

Comments
 (0)