go/ast.FuncDecl.Type (field)
29 uses
go/ast (current package)
ast.go#L996: Type *FuncType // function signature: type and value parameters, results, and position of "func" keyword
ast.go#L1005: func (d *FuncDecl) Pos() token.Pos { return d.Type.Pos() }
ast.go#L1018: return d.Type.End()
walk.go#L356: Walk(v, n.Type)
go/doc
example.go#L74: if params := f.Type.Params; len(params.List) != 0 {
example.go#L229: if d.Type.Params != nil {
example.go#L230: for _, p := range d.Type.Params.List {
example.go#L234: if d.Type.Results != nil {
example.go#L235: for _, r := range d.Type.Results.List {
example.go#L360: Type: f.Type,
reader.go#L443: if fun.Type.Results.NumFields() >= 1 {
reader.go#L446: for _, res := range fun.Type.Results.List {
reader.go#L454: if lookupTypeParam(n, fun.Type.TypeParams) != nil {
go/parser
parser.go#L2801: Type: &ast.FuncType{
resolver.go#L486: if n.Type.TypeParams != nil {
resolver.go#L487: r.walkTParams(n.Type.TypeParams)
resolver.go#L493: r.resolveList(n.Type.Params)
resolver.go#L494: r.resolveList(n.Type.Results)
resolver.go#L496: r.declareList(n.Type.Params, ast.Var)
resolver.go#L497: r.declareList(n.Type.Results, ast.Var)
go/printer
nodes.go#L1844: p.signature(d.Type)
go/types
decl.go#L796: check.funcType(sig, fdecl.Recv, fdecl.Type)
decl.go#L799: if fdecl.Type.TypeParams.NumFields() > 0 && fdecl.Body == nil {
resolver.go#L404: if d.decl.Type.TypeParams.NumFields() != 0 {
resolver.go#L405: check.softErrorf(d.decl.Type.TypeParams.List[0], code, "func %s must have no type parameters", name)
resolver.go#L408: if t := d.decl.Type; t.Params.NumFields() != 0 || t.Results != nil {
resolver.go#L442: if d.decl.Type.TypeParams.NumFields() != 0 && !check.allowVersion(pkg, 1, 18) && !hasTParamError {
resolver.go#L443: check.softErrorf(d.decl.Type.TypeParams.List[0], _UnsupportedFeature, "type parameters require go1.18 or later")