Releases: google/error-prone
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
Error Prone 2.29.0
Error Prone 2.28.0
Error Prone nows supports the latest JDK 23 EA builds (#4412, #4415).
Closed issues:
- Improved errors for invalid check severities (#4306).
- Fix a crash with nested
instanceof
patterns (#4349). - Fix a crash in JUnitIncompatibleType (#4377).
- In ObjectEqualsForPrimitives, don't suggest replacing
equal
with==
for floating-point values (#4392).
New checks:
DeeplyNested
discourages very deeply nested code that can cause StackOverflowErrors during compilation.GuiceNestedCombine
discourages nesting ofModules.combine()
, which is unnecessary.PatternMatchingInstanceof
migrates code to use pattern matching forinstanceof
SunApi
discourages use of internal proprietary JDK APIs which may be removed from future releases.
Full Changelog: v2.27.1...v2.28.0
Error Prone 2.27.1
This release contains all of the changes in 2.27.0, plus a bug fix to ClassInitializationDeadlock
(#4378)
Full Changelog: v2.27.0...v2.27.1