importas: detect duplicate alias or package in the configuration (#3753)
This commit is contained in:
parent
00d17cc8d1
commit
51f8a6141c
@ -36,12 +36,26 @@ func NewImportAs(settings *config.ImportAsSettings) *goanalysis.Linter {
|
||||
lintCtx.Log.Errorf("failed to parse configuration: %v", err)
|
||||
}
|
||||
|
||||
uniqPackages := make(map[string]config.ImportAsAlias)
|
||||
uniqAliases := make(map[string]config.ImportAsAlias)
|
||||
for _, a := range settings.Alias {
|
||||
if a.Pkg == "" {
|
||||
lintCtx.Log.Errorf("invalid configuration, empty package: pkg=%s alias=%s", a.Pkg, a.Alias)
|
||||
continue
|
||||
}
|
||||
|
||||
if v, ok := uniqPackages[a.Pkg]; ok {
|
||||
lintCtx.Log.Errorf("invalid configuration, multiple aliases for the same package: pkg=%s aliases=[%s,%s]", a.Pkg, a.Alias, v.Alias)
|
||||
} else {
|
||||
uniqPackages[a.Pkg] = a
|
||||
}
|
||||
|
||||
if v, ok := uniqAliases[a.Alias]; ok {
|
||||
lintCtx.Log.Errorf("invalid configuration, multiple packages with the same alias: pkg=%s packages=[%s,%s]", a.Alias, a.Pkg, v.Pkg)
|
||||
} else {
|
||||
uniqAliases[a.Alias] = a
|
||||
}
|
||||
|
||||
err := analyzer.Flags.Set("alias", fmt.Sprintf("%s:%s", a.Pkg, a.Alias))
|
||||
if err != nil {
|
||||
lintCtx.Log.Errorf("failed to parse configuration: %v", err)
|
||||
|
Loading…
x
Reference in New Issue
Block a user