diff options
| author | Taras Madan <tarasmadan@google.com> | 2024-11-11 11:41:38 +0100 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-11-11 11:10:48 +0000 |
| commit | 27e76fae2ee2d84dc7db63af1d9ed7358ba35b7a (patch) | |
| tree | ed19c0e35e272b3c4cc5a2f2c595e035b2428337 /vendor/github.com/alecthomas | |
| parent | 621e84e063b0e15b23e17780338627c509e1b9e8 (diff) | |
vendor: update
Diffstat (limited to 'vendor/github.com/alecthomas')
5 files changed, 33 insertions, 7 deletions
diff --git a/vendor/github.com/alecthomas/go-check-sumtype/README.md b/vendor/github.com/alecthomas/go-check-sumtype/README.md index 36614ef40..2ccec4e84 100644 --- a/vendor/github.com/alecthomas/go-check-sumtype/README.md +++ b/vendor/github.com/alecthomas/go-check-sumtype/README.md @@ -86,7 +86,8 @@ mysumtype.go:18:2: exhaustiveness check failed for sum type 'MySumType': missing ``` Adding either a `default` clause or a clause to handle `*VariantB` will cause -exhaustive checks to pass. +exhaustive checks to pass. To prevent `default` clauses from automatically +passing checks, set the `-default-signifies-exhasutive=false` flag. As a special case, if the type switch statement contains a `default` clause that always panics, then exhaustiveness checks are still performed. diff --git a/vendor/github.com/alecthomas/go-check-sumtype/check.go b/vendor/github.com/alecthomas/go-check-sumtype/check.go index 21d751af4..1a0a32517 100644 --- a/vendor/github.com/alecthomas/go-check-sumtype/check.go +++ b/vendor/github.com/alecthomas/go-check-sumtype/check.go @@ -39,7 +39,7 @@ func (e inexhaustiveError) Names() []string { // check does exhaustiveness checking for the given sum type definitions in the // given package. Every instance of inexhaustive case analysis is returned. -func check(pkg *packages.Package, defs []sumTypeDef) []error { +func check(pkg *packages.Package, defs []sumTypeDef, config Config) []error { var errs []error for _, astfile := range pkg.Syntax { ast.Inspect(astfile, func(n ast.Node) bool { @@ -47,7 +47,7 @@ func check(pkg *packages.Package, defs []sumTypeDef) []error { if !ok { return true } - if err := checkSwitch(pkg, defs, swtch); err != nil { + if err := checkSwitch(pkg, defs, swtch, config); err != nil { errs = append(errs, err) } return true @@ -67,8 +67,9 @@ func checkSwitch( pkg *packages.Package, defs []sumTypeDef, swtch *ast.TypeSwitchStmt, + config Config, ) error { - def, missing := missingVariantsInSwitch(pkg, defs, swtch) + def, missing := missingVariantsInSwitch(pkg, defs, swtch, config) if len(missing) > 0 { return inexhaustiveError{ Position: pkg.Fset.Position(swtch.Pos()), @@ -87,6 +88,7 @@ func missingVariantsInSwitch( pkg *packages.Package, defs []sumTypeDef, swtch *ast.TypeSwitchStmt, + config Config, ) (*sumTypeDef, []types.Object) { asserted := findTypeAssertExpr(swtch) ty := pkg.TypesInfo.TypeOf(asserted) @@ -97,7 +99,7 @@ func missingVariantsInSwitch( return nil, nil } variantExprs, hasDefault := switchVariants(swtch) - if hasDefault && !defaultClauseAlwaysPanics(swtch) { + if config.DefaultSignifiesExhaustive && hasDefault && !defaultClauseAlwaysPanics(swtch) { // A catch-all case defeats all exhaustiveness checks. return def, nil } diff --git a/vendor/github.com/alecthomas/go-check-sumtype/config.go b/vendor/github.com/alecthomas/go-check-sumtype/config.go new file mode 100644 index 000000000..759176eb7 --- /dev/null +++ b/vendor/github.com/alecthomas/go-check-sumtype/config.go @@ -0,0 +1,5 @@ +package gochecksumtype + +type Config struct { + DefaultSignifiesExhaustive bool +} diff --git a/vendor/github.com/alecthomas/go-check-sumtype/renovate.json5 b/vendor/github.com/alecthomas/go-check-sumtype/renovate.json5 new file mode 100644 index 000000000..77c7b016c --- /dev/null +++ b/vendor/github.com/alecthomas/go-check-sumtype/renovate.json5 @@ -0,0 +1,18 @@ +{ + $schema: "https://docs.renovatebot.com/renovate-schema.json", + extends: [ + "config:recommended", + ":semanticCommits", + ":semanticCommitTypeAll(chore)", + ":semanticCommitScope(deps)", + "group:allNonMajor", + "schedule:earlyMondays", // Run once a week. + ], + packageRules: [ + { + matchPackageNames: ["golangci-lint"], + matchManagers: ["hermit"], + enabled: false, + }, + ], +} diff --git a/vendor/github.com/alecthomas/go-check-sumtype/run.go b/vendor/github.com/alecthomas/go-check-sumtype/run.go index fdcb643c5..f32942d7a 100644 --- a/vendor/github.com/alecthomas/go-check-sumtype/run.go +++ b/vendor/github.com/alecthomas/go-check-sumtype/run.go @@ -3,7 +3,7 @@ package gochecksumtype import "golang.org/x/tools/go/packages" // Run sumtype checking on the given packages. -func Run(pkgs []*packages.Package) []error { +func Run(pkgs []*packages.Package, config Config) []error { var errs []error decls, err := findSumTypeDecls(pkgs) @@ -18,7 +18,7 @@ func Run(pkgs []*packages.Package) []error { } for _, pkg := range pkgs { - if pkgErrs := check(pkg, defs); pkgErrs != nil { + if pkgErrs := check(pkg, defs, config); pkgErrs != nil { errs = append(errs, pkgErrs...) } } |
