From 00cf7b603784e6189dd29abc3c32ba901b6872ce Mon Sep 17 00:00:00 2001 From: Choko Date: Tue, 23 Aug 2022 14:55:37 +0900 Subject: [PATCH 1/2] Add test case from @ldez --- internal/analyzer/analyzer_test.go | 4 ++++ testdata/defaultclient/src/a/a.go | 20 ++++++++++++++++++++ testdata/defaultclient/src/config/config.go | 5 +++++ 3 files changed, 29 insertions(+) create mode 100644 testdata/defaultclient/src/a/a.go create mode 100644 testdata/defaultclient/src/config/config.go diff --git a/internal/analyzer/analyzer_test.go b/internal/analyzer/analyzer_test.go index d0e6f6a..9f1734e 100644 --- a/internal/analyzer/analyzer_test.go +++ b/internal/analyzer/analyzer_test.go @@ -20,6 +20,10 @@ func TestAnalyzer(t *testing.T) { dir: "custompattern", pattern: `.*`, }, + { + dir: "defaultclient", + pattern: `^(DefaultClient|DefaultTransport)$`, + }, } wd, err := os.Getwd() diff --git a/testdata/defaultclient/src/a/a.go b/testdata/defaultclient/src/a/a.go new file mode 100644 index 0000000..b157bc6 --- /dev/null +++ b/testdata/defaultclient/src/a/a.go @@ -0,0 +1,20 @@ +package a + +import ( + "io" + "net/http" + + "config" +) + +var DefaultClient = &http.Client{} + +func reassignPattern() { + io.EOF = nil + + config.DefaultClient = nil // want "reassigning variable" + DefaultClient = nil + + http.DefaultClient = nil // want "reassigning variable" + http.DefaultTransport = nil // want "reassigning variable" +} diff --git a/testdata/defaultclient/src/config/config.go b/testdata/defaultclient/src/config/config.go new file mode 100644 index 0000000..be4a5d4 --- /dev/null +++ b/testdata/defaultclient/src/config/config.go @@ -0,0 +1,5 @@ +package config + +import "net/http" + +var DefaultClient = &http.Client{} From 29bc0e95b565bf2773a29e1490bc872f81205195 Mon Sep 17 00:00:00 2001 From: Choko Date: Tue, 23 Aug 2022 15:13:08 +0900 Subject: [PATCH 2/2] Fix --- internal/analyzer/analyzer.go | 2 +- testdata/defaults/src/a/a.go | 3 +++ testdata/defaults/src/d/e/f/f.go | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 testdata/defaults/src/d/e/f/f.go diff --git a/internal/analyzer/analyzer.go b/internal/analyzer/analyzer.go index 3fff998..c4d5fd8 100644 --- a/internal/analyzer/analyzer.go +++ b/internal/analyzer/analyzer.go @@ -49,7 +49,7 @@ func inspect(pass *analysis.Pass, node ast.Node, checkRE *regexp.Regexp, state * if err != nil { return true } - if idx := strings.IndexByte(n, '/'); idx != -1 { + if idx := strings.LastIndexByte(n, '/'); idx != -1 { n = n[idx+1:] } state.imports[n] = struct{}{} diff --git a/testdata/defaults/src/a/a.go b/testdata/defaults/src/a/a.go index b0c22ca..b1cba6c 100644 --- a/testdata/defaults/src/a/a.go +++ b/testdata/defaults/src/a/a.go @@ -11,6 +11,7 @@ import cc "c" import ( "d" "d/e" + "d/e/f" ) var st = struct { @@ -26,6 +27,8 @@ func foo() { e.ErrE = nil // want "reassigning variable" + f.ErrF = nil // want "reassigning variable" + io.EOF = nil // want "reassigning variable" st.ErrSt = errors.New("foo") diff --git a/testdata/defaults/src/d/e/f/f.go b/testdata/defaults/src/d/e/f/f.go new file mode 100644 index 0000000..64281cd --- /dev/null +++ b/testdata/defaults/src/d/e/f/f.go @@ -0,0 +1,7 @@ +package f + +import "errors" + +var ( + ErrF = errors.New("f") +)