1
0
mirror of https://github.com/golang/go synced 2024-09-30 05:24:29 -06:00

cmd/compile: update documentation for ONAME node with nil Func

After CL 436435 chain, the only case left where we create an ONAME node
with nil Func is interface method from imported package.

Change-Id: I9d9144916d01712283f2b116973f88965715fea3
Reviewed-on: https://go-review.googlesource.com/c/go/+/468816
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
This commit is contained in:
Cuong Manh Le 2023-02-16 21:30:36 +07:00 committed by Gopher Robot
parent 454198ab94
commit ab86d29bb5
3 changed files with 5 additions and 7 deletions

View File

@ -563,8 +563,7 @@ func (n *SelectorExpr) FuncName() *Name {
if n.Selection.Nname != nil {
// TODO(austin): Nname is nil for interface method
// expressions (I.M), so we can't attach a Func to
// those here. reflectdata.methodWrapper generates the
// Func.
// those here.
fn.Func = n.Selection.Nname.(*Name).Func
}
return fn

View File

@ -40,7 +40,7 @@ type Name struct {
flags bitset16
DictIndex uint16 // index of the dictionary entry describing the type of this variable declaration plus 1
sym *types.Sym
Func *Func // TODO(austin): nil for I.M, eqFor, hashfor, and hashmem
Func *Func // TODO(austin): nil for I.M
Offset_ int64
val constant.Value
Opt interface{} // for use by escape analysis

View File

@ -7950,10 +7950,9 @@ func clobberBase(n ir.Node) ir.Node {
// callTargetLSym returns the correct LSym to call 'callee' using its ABI.
func callTargetLSym(callee *ir.Name) *obj.LSym {
if callee.Func == nil {
// TODO(austin): This happens in a few cases of
// compiler-generated functions. These are all
// ABIInternal. It would be better if callee.Func was
// never nil and we didn't need this case.
// TODO(austin): This happens in case of interface method I.M from imported package.
// It's ABIInternal, and would be better if callee.Func was never nil and we didn't
// need this case.
return callee.Linksym()
}