1234567891011121314151617181920212223242526 |
- package staticcheck
- import (
- "reflect"
- "golang.org/x/tools/go/analysis"
- "honnef.co/go/tools/internal/passes/buildssa"
- "honnef.co/go/tools/ssa"
- "honnef.co/go/tools/staticcheck/vrp"
- )
- var valueRangesAnalyzer = &analysis.Analyzer{
- Name: "vrp",
- Doc: "calculate value ranges of functions",
- Run: func(pass *analysis.Pass) (interface{}, error) {
- m := map[*ssa.Function]vrp.Ranges{}
- for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs {
- vr := vrp.BuildGraph(ssafn).Solve()
- m[ssafn] = vr
- }
- return m, nil
- },
- Requires: []*analysis.Analyzer{buildssa.Analyzer},
- ResultType: reflect.TypeOf(map[*ssa.Function]vrp.Ranges{}),
- }
|