]> Cypherpunks repositories - gostls13.git/commit
go/types, types2: better error message for invalid type parameter term
authorRobert Griesemer <gri@golang.org>
Wed, 30 Mar 2022 19:19:24 +0000 (12:19 -0700)
committerRobert Griesemer <gri@golang.org>
Thu, 31 Mar 2022 14:51:17 +0000 (14:51 +0000)
commit2ea9376266b71e8a0752b8b3663bbf5b9ed48c4d
treeeba99ba55fa1427bc27e3c59c85a1200c80ee675
parent109a18dce7ef8ecb2aa60cef25362ebd05661ea0
go/types, types2: better error message for invalid type parameter term

The spec says "In a union, a term cannot be a type parameter,...",
but it's really the type in a term that cannot be a type parameter.
(Also, for the spec's purposes, a single term is still a union.)

This CL changes the current error message from:

        "cannot use type parameter in typeset"

to one of two messages:

        "term cannot be a type parameter"           (for term of form P)
        "type in term ~P cannot be a type parameter (for term of form ~P)

which are more specific and match the spec more closely.

Fixes #50420.

Change-Id: Id48503efc8416cabc03d5c40d8e64d5b3a7f078e
Reviewed-on: https://go-review.googlesource.com/c/go/+/396874
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/compile/internal/types2/testdata/examples/constraints.go
src/cmd/compile/internal/types2/testdata/fixedbugs/issue39948.go
src/cmd/compile/internal/types2/testdata/fixedbugs/issue47127.go
src/cmd/compile/internal/types2/union.go
src/go/types/testdata/examples/constraints.go
src/go/types/testdata/fixedbugs/issue39948.go
src/go/types/testdata/fixedbugs/issue47127.go
src/go/types/union.go