_linters/src/honnef.co/go/tools/ssa/builder.go
func (b *builder) buildFuncDecl(pkg *Package, decl *ast.FuncDecl) {
	id := decl.Name
	if isBlankIdent(id) {
		return // discard
	}
	fn := pkg.values[pkg.info.Defs[id]].(*Function)
	if decl.Recv == nil && id.Name == "init" {
		var v Call
		v.Call.Value = fn
		v.setType(types.NewTuple())
		pkg.init.emit(&v)
	}
	b.buildFunction(fn)
}
func (b *builder) buildFuncDecl(pkg *Package, decl *ast.FuncDecl) {
	id := decl.Name
	if isBlankIdent(id) {
		return // discard
	}
	fn := pkg.values[pkg.info.Defs[id]].(*Function)
	if decl.Recv == nil && id.Name == "init" {
		var v Call
		v.Call.Value = fn
		v.setType(types.NewTuple())
		pkg.init.emit(&v)
	}
	b.buildFunction(fn)
}
func ( b * builder ) buildFuncDecl ( pkg * Package , decl * ast . FuncDecl ) { id := decl . Name if isBlankIdent ( id ) { return // discard } fn := pkg . values [ pkg . info . Defs [ id ] ] . ( * Function ) if decl . Recv == nil && id . Name == " " { var v Call v . Call . Value = fn v . setType ( types . NewTuple ( ) ) pkg . init . emit ( & v ) } b . buildFunction ( fn ) }
// buildFuncDecl builds SSA code for the function or method declared
// by decl in package pkg.
//
buildFuncDecl builds SSA code for the function or method declared by decl in package pkg .