-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Code generator for analysis.Analyzer from a XPath expression.
For example code generator generates the follow code from //*@type="CallExpr"]/Fn[@type="Ident" and @Name="panic"].
var Analyzer = &analysis.Analyzer{
Name: "FIXME",
Doc: "FIXME",
Run: run,
Requires: []*analysis.Analyzer{
inspect.Analyzer,
},
}
func run(pass *analysis.Pass) (interface{}, error) {
inspect := pass.ResultOf[inspect.Analyzer].(*inspector.Inspector)
nodeFilter := []ast.Node{
(*ast.CallExpr)(nil),
}
inspect.Preorder(nodeFilter, func(n ast.Node) {
switch n := n.(type) {
case *ast.CallExpr:
ident, ok := n.Fn.(*ast.Ident)
if ok && ident.Name == "panic" {
pass.Reportf(n.Pos(), "FIXME")
}
}
})
return nil, nil
}XPath Parsers
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels