Documentation
¶
Index ¶
- func ExprDeclString(fset *token.FileSet, e ast.Expr) string
- func FindClassMethods(clzTypeDeclString string, fset *token.FileSet, f *ast.File) map[string]*ReceiverSpec
- func ForEachDeclInPackage(p *packages.Package, do func(ast.Decl))
- func ForEachFuncDeclInFile(file *ast.File, do func(*ast.FuncDecl))
- func ForEachFuncDeclInPackage(p *packages.Package, do func(*ast.FuncDecl))
- func ForEachInterfaceDeclInFile(file *ast.File, do func(name string, methods []*ast.Field))
- func ForEachInterfaceDeclInPackage(p *packages.Package, do func(name string, methods []*ast.Field))
- func FuncDeclString(fset *token.FileSet, fn *ast.FuncDecl) string
- func GetFileImportsAsMap(file *ast.File) map[string]string
- func ParamInfoListDeclString(params []*FieldDeclInfo) string
- func ParamInfoListFixup(paramInfos []*FieldDeclInfo)
- func ParamInfoListInvokeString(params []*FieldDeclInfo) string
- func ParamInfoListNameExists(paramInfos []*FieldDeclInfo, name string) bool
- func ParamInfoListTypeOnlyDeclString(paramInfos []*FieldDeclInfo) string
- func ParamListDeclString(fset *token.FileSet, fl *ast.FieldList) string
- func ReceiverDeclString(fset *token.FileSet, fl *ast.FieldList) string
- func ReturnDeclString(fset *token.FileSet, fl *ast.FieldList) string
- func ReturnInfoListDeclString(returns []*FieldDeclInfo) string
- type CalleeVisitor
- func (v *CalleeVisitor) AppendOtherPackageCallee(pkgName, calleeName string)
- func (v *CalleeVisitor) AppendPeerCallee(calleeName string)
- func (v *CalleeVisitor) AppendThisPackageCallee(calleeName string)
- func (v *CalleeVisitor) GetOtherPackageCallees() map[string][]string
- func (v *CalleeVisitor) GetPeerCallees() []string
- func (v *CalleeVisitor) GetThisPackageCallees() []string
- func (v *CalleeVisitor) MethodFuncName() string
- func (v *CalleeVisitor) ReceiverName() string
- func (v *CalleeVisitor) SanitizeCallees(imports map[string]string)
- func (v *CalleeVisitor) Visit(node ast.Node) ast.Visitor
- type FieldDeclInfo
- type ImportSpec
- type ReceiverSpec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExprDeclString ¶
ExprDeclString returns declarative string for AST Expr object
func FindClassMethods ¶ added in v0.1.11
func FindClassMethods(clzTypeDeclString string, fset *token.FileSet, f *ast.File) map[string]*ReceiverSpec
Find all methods of a "class"
For methods with pointer receivers, prepend "*" to type name when passed in clzTypeDeclString
func ForEachDeclInPackage ¶
ForEachDeclInPackage iterates all AST Decl objects in a AST syntactic package
func ForEachFuncDeclInPackage ¶
ForEachFuncDeclInPackage iterates all AST FuncDecl objects in a AST syntactic package
func GetFileImportsAsMap ¶ added in v0.1.12
import name -> path map
func ParamInfoListDeclString ¶
func ParamInfoListDeclString(params []*FieldDeclInfo) string
func ParamInfoListFixup ¶
func ParamInfoListFixup(paramInfos []*FieldDeclInfo)
func ParamInfoListInvokeString ¶ added in v0.1.6
func ParamInfoListInvokeString(params []*FieldDeclInfo) string
func ParamInfoListNameExists ¶
func ParamInfoListNameExists(paramInfos []*FieldDeclInfo, name string) bool
func ParamInfoListTypeOnlyDeclString ¶ added in v0.1.6
func ParamInfoListTypeOnlyDeclString(paramInfos []*FieldDeclInfo) string
ParamInfoListTypeOnlyDeclString returns declarative string from parameter field declarations, the returned declarative string contains only type declarations
func ParamListDeclString ¶
ParamListDeclString returns declarative string for AST FieldList object
func ReturnDeclString ¶
ReturnDeclString returns declative string for the given AST field list
func ReturnInfoListDeclString ¶ added in v0.1.6
func ReturnInfoListDeclString(returns []*FieldDeclInfo) string
ReturnInfoListDeclString returns declative string for the given return info list
Types ¶
type CalleeVisitor ¶ added in v0.1.12
type CalleeVisitor struct {
// contains filtered or unexported fields
}
func NewCalleeVisitor ¶ added in v0.1.12
func NewCalleeVisitor( imports map[string]string, clzMethods map[string]*ReceiverSpec, receiver, name string, ) *CalleeVisitor
func (*CalleeVisitor) AppendOtherPackageCallee ¶ added in v0.1.12
func (v *CalleeVisitor) AppendOtherPackageCallee(pkgName, calleeName string)
func (*CalleeVisitor) AppendPeerCallee ¶ added in v0.1.12
func (v *CalleeVisitor) AppendPeerCallee(calleeName string)
func (*CalleeVisitor) AppendThisPackageCallee ¶ added in v0.1.12
func (v *CalleeVisitor) AppendThisPackageCallee(calleeName string)
func (*CalleeVisitor) GetOtherPackageCallees ¶ added in v0.1.12
func (v *CalleeVisitor) GetOtherPackageCallees() map[string][]string
func (*CalleeVisitor) GetPeerCallees ¶ added in v0.1.12
func (v *CalleeVisitor) GetPeerCallees() []string
func (*CalleeVisitor) GetThisPackageCallees ¶ added in v0.1.12
func (v *CalleeVisitor) GetThisPackageCallees() []string
func (*CalleeVisitor) MethodFuncName ¶ added in v0.1.12
func (v *CalleeVisitor) MethodFuncName() string
func (*CalleeVisitor) ReceiverName ¶ added in v0.1.12
func (v *CalleeVisitor) ReceiverName() string
func (*CalleeVisitor) SanitizeCallees ¶ added in v0.1.12
func (v *CalleeVisitor) SanitizeCallees( imports map[string]string, )
type FieldDeclInfo ¶
unify AST field list with simplified struct. Original thought was to give an common interface for syntax-based and type-based implementations
func ParamListDeclInfo ¶
func ParamListDeclInfo(fset *token.FileSet, fl *ast.FieldList) []*FieldDeclInfo
type ImportSpec ¶ added in v0.1.12
func AppendImportSpec ¶ added in v0.1.12
func AppendImportSpec(specs []ImportSpec, name, p string) []ImportSpec
func GetFileImports ¶ added in v0.1.12
func GetFileImports(file *ast.File) []ImportSpec
func (*ImportSpec) IsNameDefault ¶ added in v0.1.12
func (s *ImportSpec) IsNameDefault() bool
type ReceiverSpec ¶ added in v0.1.11
type ReceiverSpec struct { Name string // receiver variable name TypeDecl string // receiver type declare string }
func FuncDeclReceiverSpec ¶ added in v0.1.11
func FuncDeclReceiverSpec(fset *token.FileSet, fn *ast.FuncDecl) *ReceiverSpec