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>
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
// Kind describes a kind of type.
// 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
// the type is complete.
-func NewNamed(obj Object) *Type {
+func NewNamed(obj TypeObject) *Type {
t := newType(TFORW)
t.sym = obj.Sym()
t.nod = obj