diff options
Diffstat (limited to 'vendor/honnef.co/go/tools/staticcheck/knowledge.go')
-rw-r--r-- | vendor/honnef.co/go/tools/staticcheck/knowledge.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/vendor/honnef.co/go/tools/staticcheck/knowledge.go b/vendor/honnef.co/go/tools/staticcheck/knowledge.go new file mode 100644 index 0000000..4c12b86 --- /dev/null +++ b/vendor/honnef.co/go/tools/staticcheck/knowledge.go | |||
@@ -0,0 +1,25 @@ | |||
1 | package staticcheck | ||
2 | |||
3 | import ( | ||
4 | "reflect" | ||
5 | |||
6 | "golang.org/x/tools/go/analysis" | ||
7 | "honnef.co/go/tools/internal/passes/buildssa" | ||
8 | "honnef.co/go/tools/ssa" | ||
9 | "honnef.co/go/tools/staticcheck/vrp" | ||
10 | ) | ||
11 | |||
12 | var valueRangesAnalyzer = &analysis.Analyzer{ | ||
13 | Name: "vrp", | ||
14 | Doc: "calculate value ranges of functions", | ||
15 | Run: func(pass *analysis.Pass) (interface{}, error) { | ||
16 | m := map[*ssa.Function]vrp.Ranges{} | ||
17 | for _, ssafn := range pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA).SrcFuncs { | ||
18 | vr := vrp.BuildGraph(ssafn).Solve() | ||
19 | m[ssafn] = vr | ||
20 | } | ||
21 | return m, nil | ||
22 | }, | ||
23 | Requires: []*analysis.Analyzer{buildssa.Analyzer}, | ||
24 | ResultType: reflect.TypeOf(map[*ssa.Function]vrp.Ranges{}), | ||
25 | } | ||