build(deps): bump github.com/nishanths/exhaustive from 0.3.6 to 0.6.0 (#2353)

Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
This commit is contained in:
dependabot[bot] 2021-11-09 01:50:02 +01:00 committed by GitHub
parent 8bc95624d0
commit ecbb9c475f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 13 additions and 57 deletions

View File

@ -154,10 +154,8 @@ linters-settings:
# enum members matching the supplied regex do not have to be listed in
# switch statements to satisfy exhaustiveness
ignore-enum-members: ""
# strategy to use when checking exhaustiveness of switch statements; one of:
# "name", "value"; see documentation for details:
# https://pkg.go.dev/github.com/nishanths/exhaustive#section-documentation
checking-strategy: "value"
# consider enums only in package scopes, not in inner scopes
package-scope-only: false
exhaustivestruct:
# Struct Patterns is list of expressions to match struct packages and names

2
go.mod
View File

@ -59,7 +59,7 @@ require (
github.com/mitchellh/go-ps v1.0.0
github.com/moricho/tparallel v0.2.1
github.com/nakabonne/nestif v0.3.1
github.com/nishanths/exhaustive v0.3.6
github.com/nishanths/exhaustive v0.6.0
github.com/nishanths/predeclared v0.2.1
github.com/pkg/errors v0.9.1
github.com/polyfloyd/go-errorlint v0.0.0-20210722154253-910bb7978349

4
go.sum generated
View File

@ -550,8 +550,8 @@ github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6Fx
github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/nishanths/exhaustive v0.3.6 h1:uRVZUfvWqSsPv+w4Qv30WgWdJwGOqR1P7QCwyhiKbOs=
github.com/nishanths/exhaustive v0.3.6/go.mod h1:gX+MP7DWMKJmNa1HfMozK+u04hQd3na9i0hyqf3/dOI=
github.com/nishanths/exhaustive v0.6.0 h1:twt0QXhWjFMYGalECxdWM8Hv5Zh2SjQ5Fu+uSuUXWLM=
github.com/nishanths/exhaustive v0.6.0/go.mod h1:gX+MP7DWMKJmNa1HfMozK+u04hQd3na9i0hyqf3/dOI=
github.com/nishanths/predeclared v0.0.0-20190419143655-18a43bb90ffc/go.mod h1:62PewwiQTlm/7Rj+cxVYqZvDIUc+JjZq6GHAC1fsObQ=
github.com/nishanths/predeclared v0.2.1 h1:1TXtjmy4f3YCFjTxRd8zcFHOmoUir+gp0ESzjFzG2sw=
github.com/nishanths/predeclared v0.2.1/go.mod h1:HvkGJcA3naj4lOwnFXFDkFxVtSqQMB9sbB1usJ+xjQE=

View File

@ -199,9 +199,11 @@ type ErrorLintSettings struct {
type ExhaustiveSettings struct {
CheckGenerated bool `mapstructure:"check-generated"`
DefaultSignifiesExhaustive bool `mapstructure:"default-signifies-exhaustive"`
IgnorePattern string `mapstructure:"ignore-pattern"` // Deprecated: this setting has no effect; see IgnoreEnumMembers instead.
IgnoreEnumMembers string `mapstructure:"ignore-enum-members"`
CheckingStrategy string `mapstructure:"checking-strategy"`
PackageScopeOnly bool `mapstructure:"package-scope-only"`
IgnorePattern string `mapstructure:"ignore-pattern"` // Deprecated: this setting has no effect; see IgnoreEnumMembers instead.
CheckingStrategy string `mapstructure:"checking-strategy"` // Deprecated.
}
type ExhaustiveStructSettings struct {

View File

@ -17,9 +17,11 @@ func NewExhaustive(settings *config.ExhaustiveSettings) *goanalysis.Linter {
a.Name: {
exhaustive.CheckGeneratedFlag: settings.CheckGenerated,
exhaustive.DefaultSignifiesExhaustiveFlag: settings.DefaultSignifiesExhaustive,
exhaustive.IgnorePatternFlag: settings.IgnorePattern,
exhaustive.IgnoreEnumMembersFlag: settings.IgnoreEnumMembers,
exhaustive.CheckingStrategyFlag: settings.CheckingStrategy,
exhaustive.PackageScopeOnly: settings.PackageScopeOnly,
exhaustive.IgnorePatternFlag: settings.IgnorePattern,
exhaustive.CheckingStrategyFlag: settings.CheckingStrategy,
},
}
}

View File

@ -1,3 +0,0 @@
linters-settings:
exhaustive:
checking-strategy: "name"

View File

@ -1,3 +0,0 @@
linters-settings:
exhaustive:
checking-strategy: "value"

View File

@ -1,18 +0,0 @@
//args: -Eexhaustive
//config_path: testdata/configs/exhaustive_checking_strategy_name.yml
package testdata
type AccessControl string
const (
AccessPublic AccessControl = "public"
AccessPrivate AccessControl = "private"
AccessDefault AccessControl = AccessPublic
)
func example(v AccessControl) {
switch v { // ERROR "missing cases in switch of type AccessControl: AccessDefault"
case AccessPublic:
case AccessPrivate:
}
}

View File

@ -1,22 +0,0 @@
//args: -Eexhaustive
//config_path: testdata/configs/exhaustive_checking_strategy_value.yml
package testdata
type AccessControl string
const (
AccessPublic AccessControl = "public"
AccessPrivate AccessControl = "private"
AccessDefault AccessControl = AccessPublic
)
// Expect no diagnostics for this switch statement, even though AccessDefault is
// not listed, because AccessPublic (which is listed) has the same value as
// AccessDefault.
func example(v AccessControl) {
switch v {
case AccessPublic:
case AccessPrivate:
}
}