From: Mateusz Poliwczak Date: Sat, 12 Oct 2024 17:34:52 +0000 (+0000) Subject: go/ast: document invalid raw string literal end position containing carriage returns X-Git-Tag: go1.24rc1~682 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f2d118fd5f7e872804a5825ce29797f81a28b0fa;p=gostls13.git go/ast: document invalid raw string literal end position containing carriage returns Fixes #69861 Change-Id: Id1684ee7d0c04262119d9e61f914bb9ecc0ef438 GitHub-Last-Rev: 5ad182c51aeb8b26631c6a97a7e9a2d89405ec06 GitHub-Pull-Request: golang/go#69862 Reviewed-on: https://go-review.googlesource.com/c/go/+/619835 LUCI-TryBot-Result: Go LUCI Auto-Submit: Ian Lance Taylor Reviewed-by: Dmitri Shuralyov Reviewed-by: Alan Donovan --- diff --git a/src/go/ast/ast.go b/src/go/ast/ast.go index 5291c0a93a..8d95eb12a9 100644 --- a/src/go/ast/ast.go +++ b/src/go/ast/ast.go @@ -305,6 +305,12 @@ type ( // first and the last rune in the Value field will be ". The // [strconv.Unquote] and [strconv.UnquoteChar] functions can be // used to unquote STRING and CHAR values, respectively. + // + // For raw string literals (Kind == token.STRING && Value[0] == '`'), + // the Value field contains the string text without carriage returns (\r) that + // may have been present in the source. Because the end position is + // computed using len(Value), the position reported by [BasicLit.End] does not match the + // true source end position for raw string literals containing carriage returns. BasicLit struct { ValuePos token.Pos // literal position Kind token.Token // token.INT, token.FLOAT, token.IMAG, token.CHAR, or token.STRING