const Help … type Transformer … // NewTransformer returns a transformer based on the specified template, // a single-file package containing "before" and "after" functions as // described in the package documentation. // tmplInfo is the type information for tmplFile. func NewTransformer(fset *token.FileSet, tmplPkg *types.Package, tmplFile *ast.File, tmplInfo *types.Info, verbose bool) (*Transformer, error) { … } // WriteAST is a convenience function that writes AST f to the specified file. func WriteAST(fset *token.FileSet, filename string, f *ast.File) (err error) { … } // funcSig returns the signature of the specified package-level function. func funcSig(pkg *types.Package, name string) *types.Signature { … } // soleExpr returns the sole expression in the before/after template function. func soleExpr(fn *ast.FuncDecl) (ast.Expr, error) { … } // stmtAndExpr returns the expression in the last return statement as well as the preceding lines. func stmtAndExpr(fn *ast.FuncDecl) ([]ast.Stmt, ast.Expr, error) { … } // mergeTypeInfo adds type info from src to dst. func mergeTypeInfo(dst, src *types.Info) { … } // (debugging only) func astString(fset *token.FileSet, n ast.Node) string { … }