Releases: google/error-prone
Error Prone 2.36.0
Changes:
- Add new matcher interfaces to
ErrorProneScanner
for AST nodes introduced after Java 11 (e5fd194) - Fix compatibility with latest JDK 24 EA builds (d67bc15)
- Check that
--should-stop=ifError=FLOW
is set when using the-Xplugin
integration (e71db1f)
New checks:
DuplicateBranches
: Discourage conditional expressions and if statements where both branches are the sameRedundantControlFlow
: Reports redundantcontinue
statements.
Error Prone 2.35.1
Error Prone's dependency on protobuf has been downgraded to 3.25.5 for this release.
Version 3.25.5 of protobuf still fixes CVE-2024-7254. This release is provided for users who aren't ready to update to 4.x, see also #4584 and #4634. Future versions of Error Prone will upgrade back to protobuf 4.x.
Full changelog: v2.35.0...v2.35.1
Error Prone 2.35.0
Changes:
- Fix handling of
\s
before the trailing delimiter inMisleadingEscapedSpace
TimeUnitMismatch
improvements: handle binary trees, consider trees likefooSeconds * 1000
to have units of millis
New checks:
JavaDurationGetSecondsToToSeconds
: Preferduration.toSeconds()
overduration.getSeconds()
Full changelog: v2.34.0...v2.35.0
Error Prone 2.34.0
Changes:
- Passing the javac flag
--should-stop=ifError=FLOW
is now required when running Error Prone (#4595) - The
MemberName
check was renamed toIdentifierName
New checks:
FutureTransformAsync
: The usage of transformAsync is not necessary when all the return values of the transformation function are immediate futures.MisformattedTestData
: Reformats Java source code inside Error Prone test cases.MisleadingEscapedSpace
: Using\s
anywhere except at the end of a line in a text block is potentially misleading.ThrowIfUncheckedKnownUnchecked
:throwIfUnchecked(knownUnchecked)
is equivalent tothrow knownUnchecked
.
Closed issues: #4595, #4598, #4620
Full changelog: v2.33.0...v2.34.0
Error Prone 2.33.0
Similar to release 2.32.0, the minimum supported JDK version to run Error Prone is JDK 17 (#3803). Using Error Prone to compile code that is deployed to earlier versions is still fully supported, but will require using JDK 17 or newer for compilation and setting --release
or -source
/-target
/-bootclasspath
.
Changes:
- Update protobuf version for CVE-2024-7254
New checks:
ArrayRecordComponent
: Record components should not be arrays.
Full changelog: v2.32.0...v2.33.0
Error Prone 2.32.0
The minimum support JDK version to run Error Prone is now JDK 17 (#3803).
Using Error Prone to compile code that is deployed to earlier versions is still fully supported, but will requires using JDK 17 or newer for compilation and setting --release
or -source
/-target
/-bootclasspath
.
Full changelog: v2.31.0...v2.32.0
Error Prone 2.31.0
This is the last planned minor release of Error Prone that will support running on JDK 11, see #3803. Using Error Prone to compile code that is deployed to earlier versions will continue to be fully supported, but will require using JDK 17 or newer for compilation and setting --release
or -source
/-target
/-bootclasspath
.
Changes:
- Introduce
@ThreadSafeTypeParameter
with enforcement by ThreadSafe - Improved support for latest JDK 24 EA builds
- Error Prone is now distributed as a Multi-Release jar (#3756)
New checks:
AutoValueBoxedValues
: AutoValue instances should not usually contain boxed types that are not Nullable. We recommend removing the unnecessary boxing.
Full changelog: v2.30.0...v2.31.0
Error Prone 2.30.0
New checks:
AutoValueBoxedValues
: Detects unnecessary boxing in AutoValue classes.DefaultLocale
: Detects implicit use of the JVM default locale, which can result in differing behaviour between JVM executions.UnnecessaryBreakInSwitch
: Remove unnecessarybreak
statements in->
switches.
Full changelog: v2.29.2...v2.30.0
Error Prone 2.29.2
This release contains all of the changes in 2.29.0 and 2.29.1, plus:
- a bug fix for a crash in
TraditionalSwitchExpression
(#4479) - restores the
module-info
for the annotations jar, which was accidentally removed (#4480)
Full Changelog: v2.29.1...v2.29.2
Error Prone 2.29.1
This release contains all of the changes in 2.29.0, plus:
- a bug fix to
UnusedVariable
to handle unnamed_
variables (#4451) - a bug fix for a crash in
SetUnrecognized
(#4475)
Full Changelog: v2.29.0...v2.29.1