Skip to content

Commit 13f1ef4

Browse files
committed
Update importas to HEAD
1 parent 54bfbb9 commit 13f1ef4

File tree

9 files changed

+52
-15
lines changed

9 files changed

+52
-15
lines changed

.golangci.example.yml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -397,14 +397,18 @@ linters-settings:
397397
max-decl-chars: 30
398398

399399
importas:
400-
# using `servingv1` alias for `knative.dev/serving/pkg/apis/serving/v1` package
401-
servingv1: knative.dev/serving/pkg/apis/serving/v1
402-
# using `autoscalingv1alpha1` alias for `knative.dev/serving/pkg/apis/autoscaling/v1alpha1` package
403-
autoscalingv1alpha1: knative.dev/serving/pkg/apis/autoscaling/v1alpha1
404-
# You can specify the package path by regular expression,
405-
# and alias by regular expression expansion syntax like below.
406-
# see https://github.com/julz/importas#use-regular-expression for details
407-
"$1$2": 'knative.dev/serving/pkg/apis/(\w+)/(v[\w\d]+)'
400+
# if set to `true`, force to use alias.
401+
no-unaliased: true
402+
# List of aliases
403+
alias:
404+
# using `servingv1` alias for `knative.dev/serving/pkg/apis/serving/v1` package
405+
servingv1: knative.dev/serving/pkg/apis/serving/v1
406+
# using `autoscalingv1alpha1` alias for `knative.dev/serving/pkg/apis/autoscaling/v1alpha1` package
407+
autoscalingv1alpha1: knative.dev/serving/pkg/apis/autoscaling/v1alpha1
408+
# You can specify the package path by regular expression,
409+
# and alias by regular expression expansion syntax like below.
410+
# see https://github.com/julz/importas#use-regular-expression for details
411+
"$1$2": 'knative.dev/serving/pkg/apis/(\w+)/(v[\w\d]+)'
408412

409413
lll:
410414
# max line length, lines longer will be reported. Default is 120.

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ require (
3737
github.com/jgautheron/goconst v1.4.0
3838
github.com/jingyugao/rowserrcheck v0.0.0-20210315055705-d907ca737bb1
3939
github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af
40-
github.com/julz/importas v0.0.0-20210405141620-a22c8f743dc9
40+
github.com/julz/importas v0.0.0-20210419104244-841f0c0fe66d
4141
github.com/kisielk/errcheck v1.6.0
4242
github.com/kulti/thelper v0.4.0
4343
github.com/kunwardeep/paralleltest v1.0.2

go.sum

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/config/linters_settings.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,10 @@ type IfshortSettings struct {
303303
MaxDeclChars int `mapstructure:"max-decl-chars"`
304304
}
305305

306-
type ImportAsSettings map[string]string
306+
type ImportAsSettings struct {
307+
Alias map[string]string
308+
NoUnaliased bool `mapstructure:"no-unaliased"`
309+
}
307310

308311
type LllSettings struct {
309312
LineLength int `mapstructure:"line-length"`

pkg/golinters/importas.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package golinters
22

33
import (
44
"fmt"
5+
"strconv"
56

67
"github.com/julz/importas" // nolint: misspell
78
"golang.org/x/tools/go/analysis"
@@ -24,7 +25,12 @@ func NewImportAs(settings *config.ImportAsSettings) *goanalysis.Linter {
2425
return
2526
}
2627

27-
for alias, pkg := range *settings {
28+
err := analyzer.Flags.Set("no-unaliased", strconv.FormatBool(settings.NoUnaliased))
29+
if err != nil {
30+
lintCtx.Log.Errorf("failed to parse configuration: %v", err)
31+
}
32+
33+
for alias, pkg := range settings.Alias {
2834
err := analyzer.Flags.Set("alias", fmt.Sprintf("%s:%s", pkg, alias))
2935
if err != nil {
3036
lintCtx.Log.Errorf("failed to parse configuration: %v", err)

test/testdata/configs/importas.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
linters-settings:
2-
importas:
2+
importas:
3+
alias:
34
fff: fmt
45
std_os: os
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
linters-settings:
2+
importas:
3+
no-unaliased: true
4+
alias:
5+
fff: fmt
6+
std_os: os

test/testdata/importas.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
package testdata
44

55
import (
6-
wrong_alias "fmt" // ERROR `import "fmt" imported as "wrong_alias" but must be "fff" according to config`
6+
wrong_alias "fmt" // ERROR `import "fmt" imported as "wrong_alias" but must be "fff" according to config`
7+
"os"
78
wrong_alias_again "os" // ERROR `import "os" imported as "wrong_alias_again" but must be "std_os" according to config`
89
)
910

1011
func ImportAsWrongAlias() {
1112
wrong_alias.Println("foo")
1213
wrong_alias_again.Stdout.WriteString("bar")
14+
os.Stdout.WriteString("test")
1315
}

test/testdata/importas_strict.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//args: -Eimportas
2+
//config_path: testdata/configs/importas_strict.yml
3+
package testdata
4+
5+
import (
6+
wrong_alias "fmt" // ERROR `import "fmt" imported as "wrong_alias" but must be "fff" according to config`
7+
"os" // ERROR `import "os" imported without alias but must be with alias "std_os" according to config`
8+
wrong_alias_again "os" // ERROR `import "os" imported as "wrong_alias_again" but must be "std_os" according to config`
9+
)
10+
11+
func ImportAsStrictWrongAlias() {
12+
wrong_alias.Println("foo")
13+
wrong_alias_again.Stdout.WriteString("bar")
14+
os.Stdout.WriteString("test")
15+
}

0 commit comments

Comments
 (0)