mirror of
https://github.com/golang/go
synced 2024-11-17 18:04:48 -07:00
cmd/compile/internal/typecheck: remove NeedRuntimeType
The only remaining use for typecheck.NeedRuntimeType is to make sure that method expressions with anonymous receiver types (e.g., "struct{T}.M") have the promoted-method wrapper generated. But the unified frontend takes care of arranging for this now. Change-Id: I89340cb6a81343f35e0de1062610cbb993d3b6bf Reviewed-on: https://go-review.googlesource.com/c/go/+/521036 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Auto-Submit: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
e8cdab5c49
commit
7b2f81eb3b
@ -186,8 +186,6 @@ func Main(archInit func(*ssagen.ArchInfo)) {
|
||||
|
||||
typecheck.Target = new(ir.Package)
|
||||
|
||||
typecheck.NeedRuntimeType = reflectdata.NeedRuntimeType // TODO(rsc): TypeSym for lock?
|
||||
|
||||
base.AutogeneratedPos = makePos(src.NewFileBase("<autogenerated>", "<autogenerated>"), 1, 0)
|
||||
|
||||
typecheck.InitUniverse()
|
||||
|
@ -20,10 +20,6 @@ import (
|
||||
// to be included in the package-level init function.
|
||||
var InitTodoFunc = ir.NewFunc(base.Pos, base.Pos, Lookup("$InitTodo"), types.NewSignature(nil, nil, nil))
|
||||
|
||||
var (
|
||||
NeedRuntimeType = func(*types.Type) {}
|
||||
)
|
||||
|
||||
func AssignExpr(n ir.Node) ir.Node { return typecheck(n, ctxExpr|ctxAssign) }
|
||||
func Expr(n ir.Node) ir.Node { return typecheck(n, ctxExpr) }
|
||||
func Stmt(n ir.Node) ir.Node { return typecheck(n, ctxStmt) }
|
||||
@ -869,17 +865,6 @@ func typecheckMethodExpr(n *ir.SelectorExpr) (res ir.Node) {
|
||||
}
|
||||
CalcMethods(mt)
|
||||
ms = mt.AllMethods()
|
||||
|
||||
// The method expression T.m requires a wrapper when T
|
||||
// is different from m's declared receiver type. We
|
||||
// normally generate these wrappers while writing out
|
||||
// runtime type descriptors, which is always done for
|
||||
// types declared at package scope. However, we need
|
||||
// to make sure to generate wrappers for anonymous
|
||||
// receiver types too.
|
||||
if mt.Sym() == nil {
|
||||
NeedRuntimeType(t)
|
||||
}
|
||||
}
|
||||
|
||||
s := n.Sel
|
||||
|
Loading…
Reference in New Issue
Block a user