Skip to content

Commit 0c5be82

Browse files
committed
importas: allow multiple empty aliases
1 parent dafd655 commit 0c5be82

File tree

3 files changed

+34
-5
lines changed

3 files changed

+34
-5
lines changed

pkg/golinters/importas/importas.go

+9-5
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,15 @@ func New(settings *config.ImportAsSettings) *goanalysis.Linter {
5151
uniqPackages[a.Pkg] = a
5252
}
5353

54-
// skip the duplication check when the alias is a regular expression replacement pattern (ie. contains `$`).
55-
if v, ok := uniqAliases[a.Alias]; ok && !strings.Contains(a.Alias, "$") {
56-
lintCtx.Log.Errorf("invalid configuration, multiple packages with the same alias: alias=%s packages=[%s,%s]", a.Alias, a.Pkg, v.Pkg)
57-
} else {
58-
uniqAliases[a.Alias] = a
54+
// ignore empty aliases
55+
if a.Alias != "" {
56+
// skip the duplication check when the alias is a regular expression replacement pattern (ie. contains `$`).
57+
v, ok := uniqAliases[a.Alias]
58+
if ok && !strings.Contains(a.Alias, "$") {
59+
lintCtx.Log.Errorf("invalid configuration, multiple packages with the same alias: alias=%s packages=[%s,%s]", a.Alias, a.Pkg, v.Pkg)
60+
} else {
61+
uniqAliases[a.Alias] = a
62+
}
5963
}
6064

6165
err := analyzer.Flags.Set("alias", fmt.Sprintf("%s:%s", a.Pkg, a.Alias))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//golangcitest:args -Eimportas
2+
//golangcitest:config_path testdata/importas_several_empty_aliases.yml
3+
//golangcitest:expected_exitcode 0
4+
package testdata
5+
6+
import (
7+
"fmt"
8+
"math"
9+
"os"
10+
)
11+
12+
func _() {
13+
fmt.Println("a")
14+
fmt.Fprint(os.Stderr, "b")
15+
println(math.MaxInt)
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
linters-settings:
2+
importas:
3+
alias:
4+
- pkg: fmt
5+
alias: ''
6+
- pkg: os
7+
alias: ''
8+
- pkg: math
9+
alias: ''

0 commit comments

Comments
 (0)