
Also do following improvements: - show proper sublinter name for megacheck sublinters - refactor and make more simple and robust megacheck merging/optimizing - improve handling of unknown linter names in //nolint directives - minimize diff of our megacheck version from the upstream, https://github.com/golang/go/issues/29612 blocks usage of the upstream version - support the new `stylecheck` linter - improve tests coverage for megacheck and nolint related cases - update and use upstream versions of unparam and interfacer instead of forked ones - don't use golangci/tools repo anymore - fix newly found issues after updating linters Also should be noted that megacheck works much faster and consumes less memory in the newest release, therefore golangci-lint works noticeably faster and consumes less memory for large repos. Relates: #314
33 lines
743 B
Go
33 lines
743 B
Go
//args: -Egovet
|
|
//config: linters-settings.govet.check-shadowing=true
|
|
package testdata
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
)
|
|
|
|
func Govet() error {
|
|
return &os.PathError{"first", "path", os.ErrNotExist} // ERROR "`os.PathError` composite literal uses unkeyed fields"
|
|
}
|
|
|
|
func GovetShadow(f io.Reader, buf []byte) (err error) {
|
|
if f != nil {
|
|
_, err := f.Read(buf) // ERROR "declaration of .err. shadows declaration at testdata/govet.go:\d+"
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
// Use variable to trigger shadowing error
|
|
_ = err
|
|
return
|
|
}
|
|
|
|
func GovetNolintVet() error {
|
|
return &os.PathError{"first", "path", os.ErrNotExist} //nolint:vet
|
|
}
|
|
|
|
func GovetNolintVetShadow() error {
|
|
return &os.PathError{"first", "path", os.ErrNotExist} //nolint:vetshadow
|
|
}
|