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