mirror of https://github.com/golang/go.git
cmd/compile: get rid of ugly {Recvs,Params,Results}P methods
These were a hack abstraction for before FuncType existed. The result value from calling FuncType() could be saved, but this maintains the current idiom of consistently using t.FuncType().foo everywhere in case we choose to evolve the API further. Change-Id: I81f19aaeab6fb7caa2d4da8bf0bbbc358ab970d0 Reviewed-on: https://go-review.googlesource.com/28150 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
This commit is contained in:
parent
7722d0f903
commit
74a00b249b
|
|
@ -1034,9 +1034,9 @@ func functype0(t *Type, this *Node, in, out []*Node) {
|
|||
if this != nil {
|
||||
rcvr = []*Node{this}
|
||||
}
|
||||
*t.RecvsP() = tofunargs(rcvr, FunargRcvr)
|
||||
*t.ResultsP() = tofunargs(out, FunargResults)
|
||||
*t.ParamsP() = tofunargs(in, FunargParams)
|
||||
t.FuncType().Receiver = tofunargs(rcvr, FunargRcvr)
|
||||
t.FuncType().Results = tofunargs(out, FunargResults)
|
||||
t.FuncType().Params = tofunargs(in, FunargParams)
|
||||
|
||||
checkdupfields("argument", t.Recvs(), t.Results(), t.Params())
|
||||
|
||||
|
|
|
|||
|
|
@ -569,9 +569,9 @@ func substAny(t *Type, types *[]*Type) *Type {
|
|||
results = results.Copy()
|
||||
}
|
||||
t = t.Copy()
|
||||
*t.RecvsP() = recvs
|
||||
*t.ResultsP() = results
|
||||
*t.ParamsP() = params
|
||||
t.FuncType().Receiver = recvs
|
||||
t.FuncType().Results = results
|
||||
t.FuncType().Params = params
|
||||
}
|
||||
|
||||
case TSTRUCT:
|
||||
|
|
@ -676,24 +676,9 @@ func (t *Type) wantEtype(et EType) {
|
|||
}
|
||||
}
|
||||
|
||||
func (t *Type) RecvsP() **Type {
|
||||
t.wantEtype(TFUNC)
|
||||
return &t.Extra.(*FuncType).Receiver
|
||||
}
|
||||
|
||||
func (t *Type) ParamsP() **Type {
|
||||
t.wantEtype(TFUNC)
|
||||
return &t.Extra.(*FuncType).Params
|
||||
}
|
||||
|
||||
func (t *Type) ResultsP() **Type {
|
||||
t.wantEtype(TFUNC)
|
||||
return &t.Extra.(*FuncType).Results
|
||||
}
|
||||
|
||||
func (t *Type) Recvs() *Type { return *t.RecvsP() }
|
||||
func (t *Type) Params() *Type { return *t.ParamsP() }
|
||||
func (t *Type) Results() *Type { return *t.ResultsP() }
|
||||
func (t *Type) Recvs() *Type { return t.FuncType().Receiver }
|
||||
func (t *Type) Params() *Type { return t.FuncType().Params }
|
||||
func (t *Type) Results() *Type { return t.FuncType().Results }
|
||||
|
||||
// Recv returns the receiver of function type t, if any.
|
||||
func (t *Type) Recv() *Field {
|
||||
|
|
|
|||
|
|
@ -375,9 +375,9 @@ func makeErrorInterface() *Type {
|
|||
out.SetFields([]*Field{field})
|
||||
|
||||
f := typ(TFUNC)
|
||||
*f.RecvsP() = rcvr
|
||||
*f.ResultsP() = out
|
||||
*f.ParamsP() = in
|
||||
f.FuncType().Receiver = rcvr
|
||||
f.FuncType().Results = out
|
||||
f.FuncType().Params = in
|
||||
|
||||
t := typ(TINTER)
|
||||
field = newField()
|
||||
|
|
|
|||
Loading…
Reference in New Issue