Skip to content

Commit d6fa985

Browse files
authored
Fix handling of imports with multiple slashes (#4)
1 parent ae04a9a commit d6fa985

File tree

6 files changed

+40
-1
lines changed

6 files changed

+40
-1
lines changed

internal/analyzer/analyzer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func inspect(pass *analysis.Pass, node ast.Node, checkRE *regexp.Regexp, state *
4949
if err != nil {
5050
return true
5151
}
52-
if idx := strings.IndexByte(n, '/'); idx != -1 {
52+
if idx := strings.LastIndexByte(n, '/'); idx != -1 {
5353
n = n[idx+1:]
5454
}
5555
state.imports[n] = struct{}{}

internal/analyzer/analyzer_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ func TestAnalyzer(t *testing.T) {
2020
dir: "custompattern",
2121
pattern: `.*`,
2222
},
23+
{
24+
dir: "defaultclient",
25+
pattern: `^(DefaultClient|DefaultTransport)$`,
26+
},
2327
}
2428

2529
wd, err := os.Getwd()

testdata/defaultclient/src/a/a.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package a
2+
3+
import (
4+
"io"
5+
"net/http"
6+
7+
"config"
8+
)
9+
10+
var DefaultClient = &http.Client{}
11+
12+
func reassignPattern() {
13+
io.EOF = nil
14+
15+
config.DefaultClient = nil // want "reassigning variable"
16+
DefaultClient = nil
17+
18+
http.DefaultClient = nil // want "reassigning variable"
19+
http.DefaultTransport = nil // want "reassigning variable"
20+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package config
2+
3+
import "net/http"
4+
5+
var DefaultClient = &http.Client{}

testdata/defaults/src/a/a.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import cc "c"
1111
import (
1212
"d"
1313
"d/e"
14+
"d/e/f"
1415
)
1516

1617
var st = struct {
@@ -26,6 +27,8 @@ func foo() {
2627

2728
e.ErrE = nil // want "reassigning variable"
2829

30+
f.ErrF = nil // want "reassigning variable"
31+
2932
io.EOF = nil // want "reassigning variable"
3033

3134
st.ErrSt = errors.New("foo")

testdata/defaults/src/d/e/f/f.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package f
2+
3+
import "errors"
4+
5+
var (
6+
ErrF = errors.New("f")
7+
)

0 commit comments

Comments
 (0)