Skip to content

Releases: google/error-prone

Error Prone 2.27.0

26 Apr 15:59
Compare
Choose a tag to compare

New checks:

  • ClassInitializationDeadlock detects class initializers that reference subtypes of the current class, which can result in deadlocks.
  • MockitoDoSetup suggests using when/thenReturn over doReturn/when for additional type safety.
  • VoidUsed suggests using a literal null instead of referring to a Void-typed variable.

Modified checks:

Closed issues: #4291. #4308, #4343, #4320

Full Changelog: v2.26.1...v2.27.0

Error Prone 2.26.1

12 Mar 19:12
Compare
Choose a tag to compare

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

11 Mar 19:06
Compare
Choose a tag to compare

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-checking System.console() is not a reliable way to detect if the console is connected to a terminal.
  • EnumOrdinal: Discourage uses of Enum.ordinal()

Closed issues: #2649, #3908, #4028, #4311, #4314

Full Changelog: v2.25.0...v2.26.0

Error Prone 2.25.0

16 Feb 22:14
Compare
Choose a tag to compare

New checks:

Closed issues: #4195, #4224, #4228, #4248, #4249, #4251

Full Changelog: v2.24.1...v2.25.0

Error Prone 2.24.1

03 Jan 17:36
Compare
Choose a tag to compare

Changes:

  • Add an assertion to try to help debug #4225

Full Changelog: v2.24.0...v2.24.1

Error Prone 2.24.0

21 Dec 17:09
Compare
Choose a tag to compare

New checks:

Full Changelog: v2.23.0...v2.24.0

Error Prone 2.23.0

18 Oct 18:44
Compare
Choose a tag to compare

Error Prone 2.22.0

21 Sep 20:05
Compare
Choose a tag to compare

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:

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. return null (#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

Error Prone 2.21.1

04 Aug 22:07
Compare
Choose a tag to compare

Changes:

  • Handle overlapping ranges in suppressedRegions (fixes #4040)
  • Add AddressSelection to discourage APIs that convert a hostname to a single address

Full Changelog: v2.21.0...v2.21.1

Error Prone 2.21.0

01 Aug 20:14
Compare
Choose a tag to compare

New Checkers:

Fixed issues: #3976, #3986, #4001, #4002, #4026, #4027

Full Changelog: v2.20.0...v2.21.0