Repository navigation
Releases
Staticcheck 2020.1.6
This release makes the following fixes and improvements:
- Staticcheck no longer panics when encountering files that have the following comment:
// Code generated DO NOT EDIT. - SA4016 no longer panics when checking bitwise operations that involve dot-imported identifiers.
- Fixed the suggested fix offered by S1004.
- Fixed a false positive involving byte arrays in SA5009.
- Fixed a false positive involving named byte slice types in SA5009.
- Added another heuristic to avoid flagging function names in error messages in ST1005.
- SA3000 will no longer flag missing calls to os.Exit in TestMain functions if targeting Go 1.15 or newer.
Staticcheck 2020.1.5
This release fixes a crash in the pattern matching engine and a false positive in SA4006.
Staticcheck 2020.1.4
This release adds special handling for imports of the deprecated github.com/golang/protobuf/proto package.
github.com/golang/protobufhas deprecated the proto package, but their protoc-gen-go still imports the package and uses one of its constants, "to enforce a weak dependency on a sufficiently new version of the legacy package".
Staticcheck would flag the import of this deprecated package in all code generated by protoc-gen-go. Instead of forcing the project to change their project structure, we choose to ignore such imports in code generated by protoc-gen-go. The import still gets flagged in code not generated by protoc-gen-go.
You can find more information about this in the upstream issue.
Staticcheck 2020.1.3
This release fixes two bugs involving //lint:ignore directives:
- When ignoring U1000 and checking a package that contains tests, Staticcheck would incorrectly complain that the linter directive didn't match any problems, even when it did.
- On repeated runs, the position information for a "this linter directive didn't match anything" report would either be missing, or be wildly incorrect.
Staticcheck 2020.1.2
Staticcheck 2020.1(.2) contains UI improvements, speed enhancements,
numerous new and improved checks, and support for the upcoming Go
1.14.
Read the full release notes at https://staticcheck.io/changes/2020.1
(2020.1.2 differs from 2020.1.1 and 2020.1 in that it actually
displays the correct version information.)
Staticcheck 2019.2.3
Staticcheck 2019.2.3 is a re-release of 2019.2.2. Its pre-built binaries have been built with Go 1.13, to enable checking of code that uses language features introduced in Go 1.13.
Staticcheck 2019.2.2
Staticcheck 2019.2.2 contains the following user-visible fixes:
- S1008 now skips if/else statements where both branches return the same value.
- SA4006 now considers a value read when a switch statement reads it, even if the switch statement has no branches.
- 2019.2 introduced a bug that made it impossible to enable non-default checks via configuration files. This is now possible again.
- 2019.2 introduced a bug that made the
-tagscommand line argument ineffective, making it impossible to pass in build tags. This is now possible again. - From this release onward, we will use pseudo versions of the form
v0.0.1-<year>.<minor>instead ofv0.0.0-<year>.<minor>. This fixes an issue wherego getwould prefer an older commit over a newer released version due to the way versions sort.
Staticcheck 2019.2.1
The 2019.2 release has an unfortunate bug that prevents staticcheck from running on 32-bit architectures, causing it to crash unconditionally. This release fixes that crash.
Staticcheck 2019.2
Staticcheck 2019.2 brings impressive performance improvements, many new and improved checks, and various small improvements to its command line.
Read the full changelog at https://staticcheck.io/changes/2019.2
Staticcheck 2019.1.1
The 2019.1.1 release fixes some minor bugs and improves the performance of the U1000 check:
- The ST category of checks no longer flag style issues of aliased types when the aliased type exists in a package we aren't explicitly checking. This avoids crashes and erratic error reports.
- Compiler errors now have correct position information.
- A crash in the Stylish reporter has been fixed.
- We no longer flag unused objects that belong to cgo internals.
- The U1000 check has been optimized, reducing its memory usage and runtime.