Releases: google/error-prone
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
Error Prone 2.27.0
New checks:
ClassInitializationDeadlock
detects class initializers that reference subtypes of the current class, which can result in deadlocks.MockitoDoSetup
suggests usingwhen
/thenReturn
overdoReturn
/when
for additional type safety.VoidUsed
suggests using a literalnull
instead of referring to aVoid
-typed variable.
Modified checks:
TruthSelfEquals
has been renamed and generalized asSelfAssertion
RedundantSetterCall
has been improved, and enabled as an error oby default
Closed issues: #4291. #4308, #4343, #4320
Full Changelog: v2.26.1...v2.27.0
Error Prone 2.26.1
This release contains all of the changes in 2.26.0, plus a bug fix to the module name of the annotations artifact com.google.errorprone.annotations
(9d99ee7)
Starting in 2.26.x
, the 'annotations' artifact now includes a module-info.java
for Java Platform Module System support, thanks to @sgammon in #4311.
Compatibility note:
Now that the annotations artifact explicit declares a module instead of relying on Automatic-Module-Name
, JDK 17 and newer perform stricter module encapsulation checks. Modularized libraries depending on Error Prone annotations 2.26.x
and newer may see errors like:
error: package com.google.errorprone.annotations is not visible
import com.google.errorprone.annotations.CheckReturnValue;
^
(package com.google.errorprone.annotations is declared in module com.google.errorprone.annotations, but module ... does not read it)
The fix is to add requires static
to the module declaration of modularized libraries that depend on Error Prone annotations:
module your.module {
...
+ requires static com.google.errorprone.annotations;
}
Full Changelog: v2.26.0...v2.26.1
Error Prone 2.26.0
Warning: This release contains a bug, please use 2.26.1 or newer instead.
Changes:
- The 'annotations' artifact now includes a
module-info.java
for Java Platform Module System support, thanks to @sgammon in #4311. - Disabled checks passed to
-XepPatchChecks
are now ignored, instead of causing a crash. Thanks to @oxkitsune in #4028.
New checks:
SystemConsoleNull
: Null-checkingSystem.console()
is not a reliable way to detect if the console is connected to a terminal.EnumOrdinal
: Discourage uses ofEnum.ordinal()
Closed issues: #2649, #3908, #4028, #4311, #4314
Full Changelog: v2.25.0...v2.26.0
Error Prone 2.25.0
New checks:
JUnitIncompatibleType
: Detects incompatible types passed to an assertion, similar toTruthIncompatibleType
RedundantSetterCall
: Detects fields set twice in the same chained expression. Generalization of previousProtoRedundantSet
check to also handle AutoValue.
Closed issues: #4195, #4224, #4228, #4248, #4249, #4251
Full Changelog: v2.24.1...v2.25.0