Skip to content

Commit 4d40476

Browse files
mason-sharpclaude
authored andcommitted
Remove redundant Float64 validation from scanNumber
The lexer already validates numeric literal syntax character-by-character. The Float64() check rejected syntactically valid numbers that exceed float64 range, which is unnecessary since CompareNumeric handles json.Number losslessly via big.Float. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 8520d57 commit 4d40476

1 file changed

Lines changed: 2 additions & 5 deletions

File tree

  • internal/consistency/repair/plan/parser

internal/consistency/repair/plan/parser/parser.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -231,11 +231,8 @@ func (l *lexer) scanNumber() (token, error) {
231231
text := l.input[start:l.pos]
232232
// Store as json.Number to preserve full precision for large integers
233233
// and high-precision decimals. CompareNumeric handles json.Number natively.
234-
n := json.Number(text)
235-
if _, err := n.Float64(); err != nil {
236-
return token{}, fmt.Errorf("invalid number %q at pos %d", text, start)
237-
}
238-
return token{typ: tokNumber, lit: text, pos: start, value: n}, nil
234+
// Syntax is already validated by the character-by-character scan above.
235+
return token{typ: tokNumber, lit: text, pos: start, value: json.Number(text)}, nil
239236
}
240237

241238
func (l *lexer) scanIdent() (token, error) {

0 commit comments

Comments
 (0)