Commit 74a00b24 authored by Matthew Dempsky's avatar Matthew Dempsky

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: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
parent 7722d0f9
......@@ -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()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment