Deprecate maligned, add govet fieldalignment as replacement (#1765)

This commit is contained in:
Ludovic Fernandez 2021-02-22 17:46:27 +01:00 committed by GitHub
parent 326d715ba4
commit 42ff682f7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 63 additions and 2 deletions

View File

@ -297,6 +297,7 @@ linters-settings:
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
# enable or disable analyzers by name
# run `go tool vet help` to see all analyzers
enable:
- atomicalign
enable-all: false

View File

@ -15,6 +15,7 @@ import (
_ "golang.org/x/tools/go/analysis/passes/ctrlflow" // unused, internal analyzer
"golang.org/x/tools/go/analysis/passes/deepequalerrors"
"golang.org/x/tools/go/analysis/passes/errorsas"
"golang.org/x/tools/go/analysis/passes/fieldalignment"
"golang.org/x/tools/go/analysis/passes/findcall"
"golang.org/x/tools/go/analysis/passes/httpresponse"
"golang.org/x/tools/go/analysis/passes/ifaceassert"
@ -55,6 +56,7 @@ var (
copylock.Analyzer,
deepequalerrors.Analyzer,
errorsas.Analyzer,
fieldalignment.Analyzer,
findcall.Analyzer,
httpresponse.Analyzer,
ifaceassert.Analyzer,

View File

@ -238,7 +238,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config {
linter.NewConfig(golinters.NewMaligned()).
WithLoadForGoAnalysis().
WithPresets(linter.PresetPerformance).
WithURL("https://github.com/mdempsky/maligned"),
WithURL("https://github.com/mdempsky/maligned").
Deprecated("The repository of the linter has been archived by the owner. Use govet 'fieldalignment' instead."),
linter.NewConfig(golinters.NewDepguard()).
WithLoadForGoAnalysis().
WithPresets(linter.PresetStyle).

57
test/testdata/govet_fieldalignment.go vendored Normal file
View File

@ -0,0 +1,57 @@
//args: -Egovet
//config: linters-settings.govet.enable=fieldalignment
package testdata
type gvfaGood struct {
y int32
x byte
z byte
}
type gvfaBad struct { // ERROR "struct of size 12 could be 8"
x byte
y int32
z byte
}
type gvfaPointerGood struct {
P *int
buf [1000]uintptr
}
type gvfaPointerBad struct { // ERROR "struct with 8008 pointer bytes could be 8"
buf [1000]uintptr
P *int
}
type gvfaPointerSorta struct {
a struct {
p *int
q uintptr
}
b struct {
p *int
q [2]uintptr
}
}
type gvfaPointerSortaBad struct { // ERROR "struct with 32 pointer bytes could be 24"
a struct {
p *int
q [2]uintptr
}
b struct {
p *int
q uintptr
}
}
type gvfaZeroGood struct {
a [0]byte
b uint32
}
type gvfaZeroBad struct { // ERROR "struct of size 8 could be 4"
a uint32
b [0]byte
}

View File

@ -1,4 +1,4 @@
//args: -Emaligned
//args: -Emaligned --internal-cmd-test
package testdata
type BadAlignedStruct struct { // ERROR "struct of size 24 bytes could be of size 16 bytes"