]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/typecheck: remove NeedRuntimeType
authorMatthew Dempsky <mdempsky@google.com>
Fri, 18 Aug 2023 08:14:50 +0000 (01:14 -0700)
committerGopher Robot <gobot@golang.org>
Sat, 19 Aug 2023 22:40:55 +0000 (22:40 +0000)
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>

src/cmd/compile/internal/gc/main.go
src/cmd/compile/internal/typecheck/typecheck.go

index ae695b58f9e1a6fba58574d3156ee0badc49c9a5..c8f1dae72873f2797da0cc152a3f9daa4b4d46c7 100644 (file)
@@ -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()
index 384295b55f35eaf8dd890c6023ad028b631f779b..92a907fec9d50fb6011b0567bb4e7d7d8edbb7ac 100644 (file)
@@ -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