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())
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:
}
}
-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 {
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()