Releases: google/error-prone
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
instanceofpatterns (#4349). - Fix a crash in JUnitIncompatibleType (#4377).
- In ObjectEqualsForPrimitives, don't suggest replacing
equalwith==for floating-point values (#4392).
New checks:
DeeplyNesteddiscourages very deeply nested code that can cause StackOverflowErrors during compilation.GuiceNestedCombinediscourages nesting ofModules.combine(), which is unnecessary.PatternMatchingInstanceofmigrates code to use pattern matching forinstanceofSunApidiscourages 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:
ClassInitializationDeadlockdetects class initializers that reference subtypes of the current class, which can result in deadlocks.MockitoDoSetupsuggests usingwhen/thenReturnoverdoReturn/whenfor additional type safety.VoidUsedsuggests using a literalnullinstead of referring to aVoid-typed variable.
Modified checks:
TruthSelfEqualshas been renamed and generalized asSelfAssertionRedundantSetterCallhas 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.javafor Java Platform Module System support, thanks to @sgammon in #4311. - Disabled checks passed to
-XepPatchChecksare 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 toTruthIncompatibleTypeRedundantSetterCall: Detects fields set twice in the same chained expression. Generalization of previousProtoRedundantSetcheck to also handle AutoValue.
Closed issues: #4195, #4224, #4228, #4248, #4249, #4251
Full Changelog: v2.24.1...v2.25.0
Error Prone 2.24.1
Error Prone 2.24.0
New checks:
MultipleNullnessAnnotations: Discourage multiple nullness annotationsNullableTypeParameter: Discourage nullness annotations on type parametersNullableWildcard: Discourage nullness annotations on wildcardsSuperCallToObjectMethod: Generalization ofSuperEqualsIsObjectEquals, now covershashCode
Full Changelog: v2.23.0...v2.24.0
Error Prone 2.23.0
New checks:
DuplicateDateFormatFieldNonFinalStaticFieldStringCharsetStringFormatWithLiteralSuperEqualsIsObjectEquals
Bug fixes and improvements: #3897, #4114, #4123
Full Changelog: v2.22.0...v2.23.0