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")