aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/types2/typexpr.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2021-01-13 17:00:11 -0800
committerRobert Griesemer <gri@golang.org>2021-01-14 17:52:06 +0000
commit67bf62d93955fa72c5307f5a2ad0394cb37abd82 (patch)
treeeeb108c1c968e28bd172a6bed677d3c484298cd5 /src/cmd/compile/internal/types2/typexpr.go
parentef5285fbd0636965d916c81dbf87834731f337b2 (diff)
downloadgo-67bf62d93955fa72c5307f5a2ad0394cb37abd82.tar.gz
go-67bf62d93955fa72c5307f5a2ad0394cb37abd82.zip
[dev.typeparams] cmd/compile/internal/types2: better error message for invalid ... use
This partially addresses the issue below: In many (all) cases we want to handle invalid ... use in the parser as a syntax error; but this ensures that we get a decent error if we get here anyway. Updates #43680. Change-Id: I93af43a5f5741d8bc76e7a13c0db75e6edf43111 Reviewed-on: https://go-review.googlesource.com/c/go/+/283475 Trust: Robert Griesemer <gri@golang.org> Reviewed-by: Robert Findley <rfindley@google.com>
Diffstat (limited to 'src/cmd/compile/internal/types2/typexpr.go')
-rw-r--r--src/cmd/compile/internal/types2/typexpr.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/types2/typexpr.go b/src/cmd/compile/internal/types2/typexpr.go
index 32377ed3f4..d30f2fef26 100644
--- a/src/cmd/compile/internal/types2/typexpr.go
+++ b/src/cmd/compile/internal/types2/typexpr.go
@@ -521,6 +521,12 @@ func (check *Checker) typInternal(e0 syntax.Expr, def *Named) (T Type) {
typ.elem = check.varType(e.Elem)
return typ
+ case *syntax.DotsType:
+ // dots are handled explicitly where they are legal
+ // (array composite literals and parameter lists)
+ check.error(e, "invalid use of '...'")
+ check.use(e.Elem)
+
case *syntax.StructType:
typ := new(Struct)
def.setUnderlying(typ)