From: Rob Findley Date: Fri, 12 May 2023 15:31:28 +0000 (-0400) Subject: go/types: minor refactoring of missingMethod following CL 494615 X-Git-Tag: go1.21rc1~547 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cecf8b93283dd9fddacdf05db583644a2f3b0bbb;p=gostls13.git go/types: minor refactoring of missingMethod following CL 494615 Make the refactoring suggested by gri@ in that CL. Change-Id: I6c363f3ba5aaa3c616d3982d998b989de7046a86 Reviewed-on: https://go-review.googlesource.com/c/go/+/494617 Run-TryBot: Robert Findley Reviewed-by: Robert Griesemer TryBot-Result: Gopher Robot --- diff --git a/src/cmd/compile/internal/types2/lookup.go b/src/cmd/compile/internal/types2/lookup.go index ccf724373b..b7370ca38d 100644 --- a/src/cmd/compile/internal/types2/lookup.go +++ b/src/cmd/compile/internal/types2/lookup.go @@ -387,10 +387,6 @@ func (check *Checker) missingMethod(V, T Type, static bool, equivalent func(x, y obj, _, _ = lookupFieldOrMethodImpl(V, false, m.pkg, m.name, true /* fold case */) f, _ = obj.(*Func) if f != nil { - // This method is formatted in funcString below, so must be type-checked. - if check != nil { - check.objDecl(f, nil) - } state = wrongName } } @@ -421,6 +417,13 @@ func (check *Checker) missingMethod(V, T Type, static bool, equivalent func(x, y } if cause != nil { + if f != nil { + // This method may be formatted in funcString below, so must have a fully + // set up signature. + if check != nil { + check.objDecl(f, nil) + } + } switch state { case notFound: switch { diff --git a/src/go/types/lookup.go b/src/go/types/lookup.go index 0ff5db74e6..d96dd86e5e 100644 --- a/src/go/types/lookup.go +++ b/src/go/types/lookup.go @@ -389,10 +389,6 @@ func (check *Checker) missingMethod(V, T Type, static bool, equivalent func(x, y obj, _, _ = lookupFieldOrMethodImpl(V, false, m.pkg, m.name, true /* fold case */) f, _ = obj.(*Func) if f != nil { - // This method is formatted in funcString below, so must be type-checked. - if check != nil { - check.objDecl(f, nil) - } state = wrongName } } @@ -423,6 +419,13 @@ func (check *Checker) missingMethod(V, T Type, static bool, equivalent func(x, y } if cause != nil { + if f != nil { + // This method may be formatted in funcString below, so must have a fully + // set up signature. + if check != nil { + check.objDecl(f, nil) + } + } switch state { case notFound: switch {