Skip to content

Commit b52fed7

Browse files
committed
Update importas to HEAD
1 parent 12ed5fa commit b52fed7

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
@@ -401,14 +401,18 @@ linters-settings:
401401
max-decl-chars: 30
402402

403403
importas:
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]+)'
404+
# if set to `true`, force to use alias.
405+
no-unaliased: true
406+
# List of aliases
407+
alias:
408+
# using `servingv1` alias for `knative.dev/serving/pkg/apis/serving/v1` package
409+
servingv1: knative.dev/serving/pkg/apis/serving/v1
410+
# using `autoscalingv1alpha1` alias for `knative.dev/serving/pkg/apis/autoscaling/v1alpha1` package
411+
autoscalingv1alpha1: knative.dev/serving/pkg/apis/autoscaling/v1alpha1
412+
# You can specify the package path by regular expression,
413+
# and alias by regular expression expansion syntax like below.
414+
# see https://github.com/julz/importas#use-regular-expression for details
415+
"$1$2": 'knative.dev/serving/pkg/apis/(\w+)/(v[\w\d]+)'
412416

413417
lll:
414418
# 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
@@ -306,7 +306,10 @@ type IfshortSettings struct {
306306
MaxDeclChars int `mapstructure:"max-decl-chars"`
307307
}
308308

309-
type ImportAsSettings map[string]string
309+
type ImportAsSettings struct {
310+
Alias map[string]string
311+
NoUnaliased bool `mapstructure:"no-unaliased"`
312+
}
310313

311314
type LllSettings struct {
312315
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)