aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/syntax/parser.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2021-08-15 12:34:59 -0700
committerRobert Griesemer <gri@golang.org>2021-08-15 19:56:18 +0000
commit717894cf8024cfaad629f0e66a4b9bc123676be5 (patch)
tree3a519fabaa0b24fba7cfc75c5b43e7f45013f199 /src/cmd/compile/internal/syntax/parser.go
parent6ed9463133daabcf11b259155c3f3348ae5a06af (diff)
downloadgo-717894cf8024cfaad629f0e66a4b9bc123676be5.tar.xz
cmd/compile/internal/types2: better error message for index syntax error (follow-up)
For #47704. Change-Id: I09e6f638df0cd456a20a3b68ab55c47bb5b1f555 Reviewed-on: https://go-review.googlesource.com/c/go/+/342370 Trust: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Robert Findley <rfindley@google.com> TryBot-Result: Go Bot <gobot@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/syntax/parser.go')
-rw-r--r--src/cmd/compile/internal/syntax/parser.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go
index 29f5c88d0f..4fb6de10a8 100644
--- a/src/cmd/compile/internal/syntax/parser.go
+++ b/src/cmd/compile/internal/syntax/parser.go
@@ -1049,10 +1049,15 @@ loop:
}
// x[i:...
- // For better error message, don't use p.want(_Colon) here (issue #47704).
+ // For better error message, don't simply use p.want(_Colon) here (issue #47704).
if !p.got(_Colon) {
- p.syntaxError("expecting : or ]")
- p.advance(_Colon, _Rbrack)
+ if p.mode&AllowGenerics == 0 {
+ p.syntaxError("expecting : or ]")
+ p.advance(_Colon, _Rbrack)
+ } else {
+ p.syntaxError("expecting comma, : or ]")
+ p.advance(_Comma, _Colon, _Rbrack)
+ }
}
p.xnest++
t := new(SliceExpr)