The compiler disallows line and column numbers > (1<<30)
(cmd/compiler/internal/syntax.PosMax).
Set the go/scanner limit to the same rather than off by one.
For #59180
Change-Id: Ibf9e0e6826d6f6230b0d492543b7e906298a0524
Reviewed-on: https://go-review.googlesource.com/c/go/+/482595
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Damien Neil <dneil@google.com>
// PosMax is the largest line or column value that can be represented without loss.
// Incoming values (arguments) larger than PosMax will be set to PosMax.
+//
+// Keep this consistent with maxLineCol in go/scanner.
const PosMax = 1 << 30
// A Pos represents an absolute (line, col) source position
// Put a cap on the maximum size of line and column numbers.
// 30 bits allows for some additional space before wrapping an int32.
- const maxLineCol = 1<<30 - 1
+ // Keep this consistent with cmd/compile/internal/syntax.PosMax.
+ const maxLineCol = 1 << 30
var line, col int
i2, n2, ok2 := trailingDigits(text[:i-1])
if ok2 {