// writeSignature writes to buf the signature sig in declaration syntax. func writeSignature(buf *bytes.Buffer, pkg *types.Package, name string, sig *types.Signature, params []*Parameter) { buf.WriteString("func ") if recv := sig.Recv(); recv != nil { buf.WriteString("(") if n := params[0].Name(); n != "" { buf.WriteString(n) buf.WriteString(" ") } buf.WriteString(relType(params[0].Type(), pkg)) buf.WriteString(") ") } buf.WriteString(name) types.WriteSignature(buf, pkg, sig) }
func changeRecv(s *types.Signature, recv *types.Var) *types.Signature { return types.NewSignature(nil, recv, s.Params(), s.Results(), s.Variadic()) }