1
0
mirror of https://github.com/golang/go synced 2024-11-26 17:56:55 -07:00

cmd/compile/internal/types: change NewNamed to use TypeObject

Semantically, TypeObject is the interface that go/types.TypeName would
implement, so we might as well use that instead of the more generic
Object (analog to go/types.Object) for NewNamed. In practice, this
doesn't really matter though, because we use *ir.Name for almost all
Objects anyway.

Also, remove VarObject: its last use was removed in CL 302071 (March
2021).

Change-Id: I6e987ecd419105e09f74fc8d60cadb61bcbc751f
Reviewed-on: https://go-review.googlesource.com/c/go/+/345810
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Robert Griesemer <gri@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
Matthew Dempsky 2021-08-27 17:57:04 -07:00
parent 5fb177163b
commit ef4cb2f776

View File

@ -27,12 +27,6 @@ type TypeObject interface {
TypeDefn() *Type // for "type T Defn", returns Defn TypeDefn() *Type // for "type T Defn", returns Defn
} }
// A VarObject is an Object representing a function argument, variable, or struct field.
type VarObject interface {
Object
RecordFrameOffset(int64) // save frame offset
}
//go:generate stringer -type Kind -trimprefix T type.go //go:generate stringer -type Kind -trimprefix T type.go
// Kind describes a kind of type. // Kind describes a kind of type.
@ -1726,7 +1720,7 @@ var (
// type should be set later via SetUnderlying(). References to the type are // type should be set later via SetUnderlying(). References to the type are
// maintained until the type is filled in, so those references can be updated when // maintained until the type is filled in, so those references can be updated when
// the type is complete. // the type is complete.
func NewNamed(obj Object) *Type { func NewNamed(obj TypeObject) *Type {
t := newType(TFORW) t := newType(TFORW)
t.sym = obj.Sym() t.sym = obj.Sym()
t.nod = obj t.nod = obj