Releases: google/error-prone
Error Prone 2.22.0
We are considering raising the minimum supported JDK from JDK 11 to JDK 17 in a future release of Error Prone, see #3803. Note that using a newer JDK version to run javac during the build doesn't prevent building code that is deployed to earlier versions, for example it's supported to use the JDK 17 javac and pass --release 11
to compile Java 11 code that is deployed to a JDK 11 runtime. If you have feedback, please comment on #3803.
New checks:
ClosingStandardOutputStreams
: Prevents accidentally closingSystem.{out,err}
with try-with-resourcesTruthContainsExactlyElementsInUsage
:containsExactly
is preferred overcontainsExactlyElementsIn
when creating new iterablesUnnecessaryAsync
: detects unnecessary use of async primitives in local (and hence single-threaded) scopesReturnAtTheEndOfVoidFunction
: detects unnecessaryreturn
statements at the end ofvoid
functionsMultimapKeys
: Suggests usingkeySet()
instead of iterating overMultimap.keys()
, which does not collapse duplicates
Bug fixes and improvements:
- Don't complain about literal IP addresses in
AddressSelection
(44b6552) - Prevent SuggestedFixes#renameMethod from modifying return type declaration (#4043)
- Fix UnusedVariable false positives for private record parameters (#2713)
- When running in conservative mode, no longer assume that implementations of
Map.get
, etc. returnnull
(#2910) - CanIgnoreReturnValueSuggester: Support additional exempting method annotations (#4009)
- UnusedVariable: exclude junit5's
@RegisterExtension
(#3892) - Support running all available patch checks (#947)
- Upgrade java-diff-utils 4.0 -> 4.12 (#4081)
- Flag unused Refaster template parameters (#4060)
- Support
@SuppressWarnings("all")
(#4065) - Prevent Refaster
UMemberSelect
from matching method parameters (#2456) - MissingDefault : Don't require
// fall out
comments on expression switches (#2709) - Skip UnnecessaryLambda findings for usages in enhanced for loops (#2518)
- Fix bug where nested MissingBraces violations' suggested fixes result in broken code (#3797)
- Add support for specifying
exemptPrefixes
/exemptNames
for UnusedVariable via flags (#2753) - UnusedMethod: Added exempting variable annotations (#2881)
Full Changelog: v2.21.1...v2.22.0
Error Prone 2.21.1
Changes:
- Handle overlapping ranges in suppressedRegions (fixes #4040)
- Add
AddressSelection
to discourage APIs that convert a hostname to a single address
Full Changelog: v2.21.0...v2.21.1
Error Prone 2.21.0
New Checkers:
AttemptedNegativeZero
: Prevents accidental use of-0
, which is the same as0
. The floating-point negative zero is-0.0
.ICCProfileGetInstance
: Warns on uses ofICC_Profile.getInstance(String)
, due to JDK-8191622.MutableGuiceModule
: Fields in Guice modules should befinal
.NullableOptional
: Discourages@Nullable
-annotatedOptional
s.OverridingMethodInconsistentArgumentNamesChecker
: Arguments of overriding method are inconsistent with overridden method.
Fixed issues: #3976, #3986, #4001, #4002, #4026, #4027
Full Changelog: v2.20.0...v2.21.0
Error Prone 2.20.0
Changes:
- This release is compatible with early-access builds of JDK 21.
New Checkers:
InlineTrivialConstant
UnnecessaryStringBuilder
BanClassLoader
DereferenceWithNullBranch
DoNotUseRuleChain
LockOnNonEnclosingClassLiteral
MissingRefasterAnnotation
NamedLikeContextualKeyword
NonApiType
Fixes issues: #2232, #2243, #2997, #3301, #3843, #3903, #3918, #3923, #3931, #3945, #3946
Full Changelog: v2.19.1...v2.20.0
Error Prone 2.19.1
This release fixes a binary compatibility issue when running on JDK 11, see #3895
Full Changelog: v2.19.0...v2.19.1
Error Prone 2.19.0
Error Prone 2.18.0
Error Prone 2.17.0
New Checkers:
AvoidObjectArrays
Finalize
IgnoredPureGetter
ImpossibleNullComparison
MathAbsoluteNegative
NewFileSystem
StatementSwitchToExpressionSwitch
UnqualifiedYield
Fixed issues: #2321, #3144, #3297, #3428, #3437, #3462, #3482, #3494
Full Changelog: v2.16...v2.17.0
Error Prone 2.16.0
New Checkers:
ASTHelpersSuggestions
CanIgnoreReturnValueSuggester
LenientFormatStringValidation
UnnecessarilyUsedValue
Fixed issues: #3092, #3220, #3225, #3267, #3441
Full Changelog: v2.15.0...v2.16
Error Prone 2.15.0
New Checkers:
BuilderReturnThis
CanIgnoreReturnValueSuggester
CannotMockFinalClass
CannotMockFinalMethod
DirectInvocationOnMock
ExtendsObject
MockNotUsedInProduction
NoCanIgnoreReturnValueOnClasses
NullArgumentForNonNullParameter
SelfAlwaysReturnsThis
UnsafeWildcard
UnusedTypeParameter
Fixed issues: #1562, #3236, #3245, #3321
Full Changelog: v2.14.0...v2.15.0