]> Cypherpunks repositories - gostls13.git/commit
[dev.typeparams] cmd/compile: use types2.Constraint() rather than types2.Bound()
authorDan Scales <danscales@google.com>
Sun, 8 Aug 2021 05:26:46 +0000 (22:26 -0700)
committerDan Scales <danscales@google.com>
Mon, 9 Aug 2021 20:08:06 +0000 (20:08 +0000)
commitf5f79c47f900300e8ac962e73ae7c2c706489d67
treed230a1539fcfb224956b4b9dc17b6f94171cef87
parent9f4d6a83594a04f0fc82c33f373b7e7bcf64f7f2
[dev.typeparams] cmd/compile: use types2.Constraint() rather than types2.Bound()

types2.Constraint() returns the top-level constraint type, including any
unions or other interface elements. Because of that, we needed to
add/fix some code in the type substituter and generic type instantiater
in the importer to deal with unions and non-method members of an
interface. Also, NewUnion was not correctly setting the HasTParam flag.

I also added a better error message when a symbol is not found in
(*deadcodePass).decodeIfaceMethod().

Change-Id: Id3668dc596dce63690fa05a9e5e42295b5e2bbb5
Reviewed-on: https://go-review.googlesource.com/c/go/+/340670
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Dan Scales <danscales@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/noder/types.go
src/cmd/compile/internal/typecheck/iimport.go
src/cmd/compile/internal/typecheck/subr.go
src/cmd/compile/internal/types/type.go
src/cmd/link/internal/ld/deadcode.go