Skip to content

--output-format no longer reporting typecheck errors #1002

Closed
@vektah

Description

@vektah
package setup
mkdir foo
cd foo
go mod init foo
echo "syntax error" > main.go

In golangci-lint versions 1.21 and prior running golangci-lint run --output-format json would give json output with any syntax violations.

golangci-lint-1.21.0 run --out-format json    
WARN [runner] Can't run linter unused: buildssa: analysis skipped: errors in package: [-: main.go:1:1: expected 'package', found syntax] 
ERRO [runner/goanalysis_metalinter] typechecking error: main.go:1:1: expected 'package', found syntax 
WARN [runner] Can't run linter goanalysis_metalinter: assign: failed prerequisites: inspect@foo 
{"Issues":null,"Report":{"Warnings":[{"Tag":"runner","Text":"Can't run linter unused: buildssa: analysis skipped: errors in package: [-: main.go:1:1: expected 'package', found syntax]"},{"Tag":"runner","Text":"Can't run linter goanalysis_metalinter: assign: failed prerequisites: inspect@foo"}],"Linters":[{"Name":"govet","EnabledByDefault":true},{"Name":"bodyclose"},{"Name":"errcheck","EnabledByDefault":true},{"Name":"golint"},{"Name":"staticcheck","EnabledByDefault":true},{"Name":"unused","Enabled":true,"EnabledByDefault":true},{"Name":"gosimple","EnabledByDefault":true},{"Name":"stylecheck"},{"Name":"gosec"},{"Name":"structcheck","EnabledByDefault":true},{"Name":"varcheck","EnabledByDefault":true},{"Name":"interfacer"},{"Name":"unconvert"},{"Name":"ineffassign","EnabledByDefault":true},{"Name":"dupl"},{"Name":"goconst"},{"Name":"deadcode","EnabledByDefault":true},{"Name":"gocyclo"},{"Name":"gocognit"},{"Name":"typecheck","EnabledByDefault":true},{"Name":"gofmt"},{"Name":"goimports"},{"Name":"maligned"},{"Name":"depguard"},{"Name":"misspell"},{"Name":"lll"},{"Name":"unparam"},{"Name":"dogsled"},{"Name":"nakedret"},{"Name":"prealloc"},{"Name":"scopelint"},{"Name":"gocritic"},{"Name":"gochecknoinits"},{"Name":"gochecknoglobals"},{"Name":"godox"},{"Name":"funlen"},{"Name":"whitespace"},{"Name":"wsl"}],"Error":"typechecking error: main.go:1:1: expected 'package', found syntax"}}

In v1.22.0, specifically #890, the first linter to error (goanalysis_metalinter) now prevents typecheck from running so we get no json output at all.

golangci-lint-1.22.0 run --out-format json              
WARN [runner] Can't run linter unused: buildir: analysis skipped: errors in package: [-: main.go:1:1: expected 'package', found syntax] 
ERRO [runner/goanalysis_metalinter] typechecking error: main.go:1:1: expected 'package', found syntax 
WARN [runner] Can't run linter goanalysis_metalinter: assign: failed prerequisites: [inspect@foo: analysis skipped: errors in package: [-: main.go:1:1: expected 'package', found syntax]] 
ERRO Running error: assign: failed prerequisites: [inspect@foo: analysis skipped: errors in package: [-: main.go:1:1: expected 'package', found syntax]] 
Version of golangci-lint
$ golangci-lint --version
golangci-lint has version 1.24.0 built from 6fd4383 on 2020-03-15T11:38:02Z
Config file
$ cat .golangci.yml
cat: .golangci.yml: No such file or directory

not using a config file
Go environment
$ go version && go env
go version go1.14.1 linux/amd64
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/vektah/.cache/go-build"
GOENV="/home/vektah/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/vektah/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/vektah/bin/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/vektah/bin/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/vektah/projects/redacted/redacted/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build271118658=/tmp/go-build -gno-record-gcc-switches"
Verbose output of running
$ golangci-lint run -v
INFO [config_reader] Config search paths: [./ /home/vektah/projects/redacted/redacted/home/vektah/projects/redacted/home/vektah/projects /home/vektah /home /] 
INFO [lintersdb] Active 10 linters: [deadcode errcheck gosimple govet ineffassign staticcheck structcheck typecheck unused varcheck] 
INFO [lintersdb] Active 10 linters: [deadcode errcheck gosimple govet ineffassign staticcheck structcheck typecheck unused varcheck] 
INFO [loader] Go packages loading at mode 575 (deps|exports_file|imports|compiled_files|files|name|types_sizes) took 99.258594ms 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 4.927623ms 
ERRO [runner/goanalysis_metalinter] typechecking error: generated.go:10:8: expected ';', found ',' 
INFO [runner/goanalysis_metalinter/goanalysis] analyzers took 1.41716ms with top 10 stages: fact_deprecated: 128.515µs, buildir: 64.929µs, SA4019: 30.222µs, S1018: 26.9µs, S1033: 26.145µs, S1017: 23.934µs, S1024: 21.841µs, SA1018: 17.777µs, typecheck: 16.943µs, SA6005: 16.126µs 
WARN [runner] Can't run linter goanalysis_metalinter: SA1011: failed prerequisites: [(buildir@github.com/redacted/redacted, tokenfileanalyzer@github.com/redacted/redacted): analysis skipped: errors in package: [-: generated.go:10:8: expected ';', found ',']] 
INFO [runner/unused/goanalysis] analyzers took 69.697µs with top 10 stages: buildir: 58.101µs, U1000: 11.596µs 
WARN [runner] Can't run linter unused: buildir: analysis skipped: errors in package: [-: generated.go:10:8: expected ';', found ','] 
INFO [runner] processing took 1.854µs with stages: max_same_issues: 302ns, skip_dirs: 202ns, nolint: 174ns, max_from_linter: 142ns, filename_unadjuster: 133ns, cgo: 129ns, source_code: 104ns, autogenerated_exclude: 94ns, path_prettifier: 93ns, diff: 93ns, identifier_marker: 92ns, skip_files: 90ns, exclude: 46ns, max_per_file_from_linter: 44ns, path_shortener: 40ns, exclude-rules: 38ns, uniq_by_line: 38ns 
INFO [runner] linters took 34.186565ms with stages: goanalysis_metalinter: 33.767629ms, unused: 384.53µs 
ERRO Running error: buildir: analysis skipped: errors in package: [-: generated.go:10:8: expected ';', found ','] 
INFO Memory: 3 samples, avg is 70.2MB, max is 70.6MB 
INFO Execution took 142.934549ms    

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfalse negativeAn error is not reported when one exists

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions