[dev.typeparams] cmd/compile/internal/types2: fix a panic in missingMethod

When static == false, missingMethod incorrectly continues with a nil
Func.

Also remove some unnecessary type names from typeterm_test.go, which was
done in the go/types port.

Change-Id: I21fa637ac82b115563d3601314a470a5a43f9ae0
Reviewed-on: https://go-review.googlesource.com/c/go/+/339672
Trust: Robert Findley <rfindley@google.com>
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
This commit is contained in:
Rob Findley 2021-08-03 20:36:02 -04:00 committed by Robert Findley
parent 5b51cf47dc
commit 880ab6209e
2 changed files with 9 additions and 6 deletions

View file

@ -308,7 +308,10 @@ func (check *Checker) missingMethod(V Type, T *Interface, static bool) (method,
for _, m := range T.typeSet().methods {
_, f := ityp.typeSet().LookupMethod(m.pkg, m.name)
if f == nil && static {
if f == nil {
if !static {
continue
}
return m, f
}

View file

@ -11,11 +11,11 @@ import (
var testTerms = map[string]*term{
"∅": nil,
"": &term{},
"int": &term{false, Typ[Int]},
"~int": &term{true, Typ[Int]},
"string": &term{false, Typ[String]},
"~string": &term{true, Typ[String]},
"": {},
"int": {false, Typ[Int]},
"~int": {true, Typ[Int]},
"string": {false, Typ[String]},
"~string": {true, Typ[String]},
// TODO(gri) add a defined type
}