google/error-prone (com.google.errorprone:error_prone_core)
### [`v2.35.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.35.1): 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](https://redirect.github.com/google/error-prone/issues/4584) and [#4634](https://redirect.github.com/google/error-prone/issues/4634). Future versions of Error Prone will upgrade back to protobuf 4.x.
Full changelog: https://github.com/google/error-prone/compare/v2.35.0...v2.35.1
### [`v2.35.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.35.0): Error Prone 2.35.0
Changes:
- Fix handling of `\s` before the trailing delimiter in [`MisleadingEscapedSpace`](https://errorprone.info/bugpattern/MisleadingEscapedSpace)
- [`TimeUnitMismatch`](https://errorprone.info/bugpattern/TimeUnitMismatch) improvements: handle binary trees, consider trees like `fooSeconds * 1000` to have units of millis
New checks:
- [`JavaDurationGetSecondsToToSeconds`](https://errorprone.info/bugpattern/JavaDurationGetSecondsToToSeconds): Prefer `duration.toSeconds()` over `duration.getSeconds()`
Full changelog: https://github.com/google/error-prone/compare/v2.34.0...v2.35.0
### [`v2.34.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.34.0): Error Prone 2.34.0
Changes:
- Passing the javac flag `--should-stop=ifError=FLOW` is now required when running Error Prone ([#4595](https://redirect.github.com/google/error-prone/issues/4595))
- The `MemberName` check was renamed to [`IdentifierName`](https://errorprone.info/bugpattern/IdentifierName)
New checks:
- [`FutureTransformAsync`](https://errorprone.info/bugpattern/FutureTransformAsync): The usage of transformAsync is not necessary when all the return values of the transformation function are immediate futures.
- [`MisformattedTestData`](https://errorprone.info/bugpattern/MisformattedTestData): Reformats Java source code inside Error Prone test cases.
- [`MisleadingEscapedSpace`](https://errorprone.info/bugpattern/MisleadingEscapedSpace): Using `\s` anywhere except at the end of a line in a text block is potentially misleading.
- [`ThrowIfUncheckedKnownUnchecked`](https://errorprone.info/bugpattern/ThrowIfUncheckedKnownUnchecked): `throwIfUnchecked(knownUnchecked)` is equivalent to `throw knownUnchecked`.
Closed issues: [#4595](https://redirect.github.com/google/error-prone/issues/4595), [#4598](https://redirect.github.com/google/error-prone/issues/4598), [#4620](https://redirect.github.com/google/error-prone/issues/4620)
Full changelog: https://github.com/google/error-prone/compare/v2.33.0...v2.34.0
### [`v2.33.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.33.0): Error Prone 2.33.0
Similar to release [2.32.0](https://redirect.github.com/google/error-prone/releases/v2.32.0), the minimum supported JDK version to run Error Prone is JDK 17 ([#3803](https://redirect.github.com/google/error-prone/issues/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`](https://errorprone.info/bugpattern/ArrayRecordComponent): Record components should not be arrays.
Full changelog: https://github.com/google/error-prone/compare/v2.32.0...v2.33.0
### [`v2.32.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.32.0): Error Prone 2.32.0
The minimum support JDK version to run Error Prone is now JDK 17 ([#3803](https://redirect.github.com/google/error-prone/issues/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: https://github.com/google/error-prone/compare/v2.31.0...v2.32.0
### [`v2.31.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.31.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](https://redirect.github.com/google/error-prone/issues/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`](https://redirect.github.com/google/error-prone/blob/2656f48902f6723f3147caa117372309dbc6c15f/type_annotations/src/main/java/com/google/errorprone/annotations/ThreadSafeTypeParameter.java) with enforcement by [ThreadSafe](https://errorprone.info/bugpattern/ThreadSafe)
- Improved support for latest JDK 24 EA builds
- Error Prone is now distributed as a Multi-Release jar ([#3756](https://redirect.github.com/google/error-prone/issues/3756))
New checks:
- [`AutoValueBoxedValues`](https://errorprone.info/bugpattern/AutoValueBoxedValues): AutoValue instances should not usually contain boxed types that are not Nullable. We recommend removing the unnecessary boxing.
Full changelog: https://github.com/google/error-prone/compare/v2.30.0...v2.31.0
### [`v2.30.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.30.0): Error Prone 2.30.0
New checks:
- [`AutoValueBoxedValues`](https://errorprone.info/bugpattern/AutoValueBoxedValues): Detects unnecessary boxing in AutoValue classes.
- [`DefaultLocale`](https://errorprone.info/bugpattern/DefaultLocale): Detects implicit use of the JVM default locale, which can result in differing behaviour between JVM executions.
- [`UnnecessaryBreakInSwitch`](https://errorprone.info/bugpattern/UnnecessaryBreakInSwitch): Remove unnecessary `break` statements in `->` switches.
Closed issues: [#632](https://redirect.github.com/google/error-prone/issues/632), [#4487](https://redirect.github.com/google/error-prone/issues/4487)
Full changelog: https://github.com/google/error-prone/compare/v2.29.2...v2.30.0
### [`v2.29.2`](https://redirect.github.com/google/error-prone/releases/tag/v2.29.2): Error Prone 2.29.2
This release contains all of the changes in [2.29.0](https://redirect.github.com/google/error-prone/releases/tag/v2.29.0) and [2.29.1](https://redirect.github.com/google/error-prone/releases/tag/v2.29.1), plus:
- a bug fix for a crash in `TraditionalSwitchExpression` ([https://github.com/google/error-prone/issues/4479](https://redirect.github.com/google/error-prone/issues/4479))
- restores the `module-info` for the annotations jar, which was accidentally removed ([https://github.com/google/error-prone/issues/4480](https://redirect.github.com/google/error-prone/issues/4480))
Full Changelog: https://github.com/google/error-prone/compare/v2.29.1...v2.29.2
### [`v2.29.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.29.1): Error Prone 2.29.1
This release contains all of the changes in [2.29.0](https://redirect.github.com/google/error-prone/releases/tag/v2.29.0), plus:
- a bug fix to `UnusedVariable` to handle unnamed `_` variables ([https://github.com/google/error-prone/issues/4451](https://redirect.github.com/google/error-prone/issues/4451))
- a bug fix for a crash in `SetUnrecognized` ([https://github.com/google/error-prone/issues/4475](https://redirect.github.com/google/error-prone/issues/4475))
Full Changelog: https://github.com/google/error-prone/compare/v2.29.0...v2.29.1
### [`v2.29.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.29.0): Error Prone 2.29.0
New checks:
- [`MissingRuntimeRetention`](https://errorprone.info/bugpattern/MissingRuntimeRetention)
- [`SetUnrecognized`](https://errorprone.info/bugpattern/SetUnrecognized)
- [`StatementSwitchToExpressionSwitch`](https://errorprone.info/bugpattern/StatementSwitchToExpressionSwitch)
Closed issues: [#4318](https://redirect.github.com/google/error-prone/issues/4318), [#4429](https://redirect.github.com/google/error-prone/issues/4429), [#4467](https://redirect.github.com/google/error-prone/issues/4467)
Full Changelog: https://github.com/google/error-prone/compare/v2.28.0...v2.29.0
### [`v2.28.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.28.0): Error Prone 2.28.0
Error Prone nows supports the latest JDK 23 EA builds ([#4412](https://redirect.github.com/google/error-prone/issues/4412), [#4415](https://redirect.github.com/google/error-prone/issues/4415)).
Closed issues:
- Improved errors for invalid check severities ([#4306](https://redirect.github.com/google/error-prone/issues/4306)).
- Fix a crash with nested `instanceof` patterns ([#4349](https://redirect.github.com/google/error-prone/issues/4349)).
- Fix a crash in JUnitIncompatibleType ([#4377](https://redirect.github.com/google/error-prone/issues/4377)).
- In ObjectEqualsForPrimitives, don't suggest replacing `equal` with `==` for floating-point values ([#4392](https://redirect.github.com/google/error-prone/issues/4392)).
New checks:
- [`DeeplyNested`](https://errorprone.info/bugpattern/DeeplyNested) discourages very deeply nested code that can cause StackOverflowErrors during compilation.
- [`GuiceNestedCombine`](https://errorprone.info/bugpattern/GuiceNestedCombine) discourages nesting of `Modules.combine()`, which is unnecessary.
- [`PatternMatchingInstanceof`](https://errorprone.info/bugpattern/PatternMatchingInstanceof) migrates code to use [pattern matching for `instanceof`](https://openjdk.org/jeps/394)
- [`SunApi`](https://errorprone.info/bugpattern/SunApi) discourages use of internal proprietary JDK APIs which may be removed from future releases.
Full Changelog: https://github.com/google/error-prone/compare/v2.27.1...v2.28.0
### [`v2.27.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.27.1): Error Prone 2.27.1
This release contains all of the changes in [2.27.0](https://redirect.github.com/google/error-prone/releases/tag/v2.27.0), plus a bug fix to [`ClassInitializationDeadlock`](https://errorprone.info/bugpattern/ClassInitializationDeadlock) ([https://github.com/google/error-prone/issues/4378](https://redirect.github.com/google/error-prone/issues/4378))
Full Changelog: https://github.com/google/error-prone/compare/v2.27.0...v2.27.1
### [`v2.27.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.27.0): Error Prone 2.27.0
New checks:
- [`ClassInitializationDeadlock`](https://errorprone.info/bugpattern/ClassInitializationDeadlock) detects class initializers that reference subtypes of the current class, which can result in deadlocks.
- [`MockitoDoSetup`](https://errorprone.info/bugpattern/MockitoDoSetup) suggests using `when`/`thenReturn` over `doReturn`/`when` for additional type safety.
- [`VoidUsed`](https://errorprone.info/bugpattern/VoidUsed) suggests using a literal `null` instead of referring to a `Void`-typed variable.
Modified checks:
- `TruthSelfEquals` has been renamed and generalized as [`SelfAssertion`](https://errorprone.info/bugpattern/SelfAssertion)
- [`RedundantSetterCall`](https://errorprone.info/bugpattern/RedundantSetterCall) has been improved, and enabled as an error oby default
Closed issues: [#4291](https://redirect.github.com/google/error-prone/issues/4291). [#4308](https://redirect.github.com/google/error-prone/issues/4308), [#4343](https://redirect.github.com/google/error-prone/issues/4343), [#4320](https://redirect.github.com/google/error-prone/issues/4320)
Full Changelog: https://github.com/google/error-prone/compare/v2.26.1...v2.27.0
### [`v2.26.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.26.1): Error Prone 2.26.1
This release contains all of the changes in [2.26.0](https://redirect.github.com/google/error-prone/releases/tag/v2.26.0), plus a bug fix to the module name of the annotations artifact `com.google.errorprone.annotations` (https://github.com/google/error-prone/commit/9d99ee76f2ca8568b69150f5df7fe845c8545d16)
Starting in `2.26.x`, the 'annotations' artifact now includes a `module-info.java` for Java Platform Module System support, thanks to [@sgammon](https://redirect.github.com/sgammon) in [#4311](https://redirect.github.com/google/error-prone/issues/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:
```diff
module your.module {
...
+ requires static com.google.errorprone.annotations;
}
```
***
Full Changelog: https://github.com/google/error-prone/compare/v2.26.0...v2.26.1
### [`v2.26.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.26.0): Error Prone 2.26.0
**Warning: This release contains a bug, please use [2.26.1](https://redirect.github.com/google/error-prone/releases/tag/v2.26.1) or newer instead.**
Changes:
- The 'annotations' artifact now includes a `module-info.java` for Java Platform Module System support, thanks to [@sgammon](https://redirect.github.com/sgammon) in [#4311](https://redirect.github.com/google/error-prone/issues/4311).
- Disabled checks passed to `-XepPatchChecks` are now ignored, instead of causing a crash. Thanks to [@oxkitsune](https://redirect.github.com/oxkitsune) in [#4028](https://redirect.github.com/google/error-prone/issues/4028).
New checks:
- [`SystemConsoleNull`](https://errorprone.info/bugpattern/SystemConsoleNull): Null-checking `System.console()` is not a reliable way to detect if the console is connected to a terminal.
- [`EnumOrdinal`](https://errorprone.info/bugpattern/EnumOrdinal): Discourage uses of `Enum.ordinal()`
Closed issues: [#2649](https://redirect.github.com/google/error-prone/issues/2649), [#3908](https://redirect.github.com/google/error-prone/issues/3908), [#4028](https://redirect.github.com/google/error-prone/issues/4028), [#4311](https://redirect.github.com/google/error-prone/issues/4311), [#4314](https://redirect.github.com/google/error-prone/issues/4314)
Full Changelog: https://github.com/google/error-prone/compare/v2.25.0...v2.26.0
### [`v2.25.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.25.0): Error Prone 2.25.0
New checks:
- [`JUnitIncompatibleType`](https://errorprone.info/bugpattern/JUnitIncompatibleType): Detects incompatible types passed to an assertion, similar to [` TruthIncompatibleType `](https://errorprone.info/bugpattern/TruthIncompatibleType)
- [`RedundantSetterCall`](https://errorprone.info/bugpattern/RedundantSetterCall): Detects fields set twice in the same chained expression. Generalization of previous `ProtoRedundantSet` check to also handle [AutoValue](https://redirect.github.com/google/auto/blob/main/value/userguide/index.md).
Closed issues: [#4195](https://redirect.github.com/google/error-prone/issues/4195), [#4224](https://redirect.github.com/google/error-prone/issues/4224), [#4228](https://redirect.github.com/google/error-prone/issues/4228), [#4248](https://redirect.github.com/google/error-prone/issues/4248), [#4249](https://redirect.github.com/google/error-prone/issues/4249), [#4251](https://redirect.github.com/google/error-prone/issues/4251)
Full Changelog: https://github.com/google/error-prone/compare/v2.24.1...v2.25.0
### [`v2.24.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.24.1): Error Prone 2.24.1
Changes:
- Add an assertion to try to help debug [https://github.com/google/error-prone/issues/4225](https://redirect.github.com/google/error-prone/issues/4225)
Full Changelog: https://github.com/google/error-prone/compare/v2.24.0...v2.24.1
### [`v2.24.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.24.0): Error Prone 2.24.0
New checks:
- [`MultipleNullnessAnnotations`](https://errorprone.info/bugpattern/MultipleNullnessAnnotations): Discourage multiple nullness annotations
- [`NullableTypeParameter`](https://errorprone.info/bugpattern/NullableTypeParameter): Discourage nullness annotations on type parameters
- [`NullableWildcard`](https://errorprone.info/bugpattern/NullableWildcard): Discourage nullness annotations on wildcards
- [`SuperCallToObjectMethod`](https://errorprone.info/bugpattern/SuperCallToObjectMethod): Generalization of `SuperEqualsIsObjectEquals`, now covers `hashCode`
Full Changelog: https://github.com/google/error-prone/compare/v2.23.0...v2.24.0
### [`v2.23.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.23.0): Error Prone 2.23.0
New checks:
- [`DuplicateDateFormatField`](https://errorprone.info/bugpattern/DuplicateDateFormatField)
- [`NonFinalStaticField`](https://errorprone.info/bugpattern/NonFinalStaticField)
- [`StringCharset`](https://errorprone.info/bugpattern/StringCharset)
- [`StringFormatWithLiteral`](https://errorprone.info/bugpattern/StringFormatWithLiteral)
- [`SuperEqualsIsObjectEquals`](https://errorprone.info/bugpattern/SuperEqualsIsObjectEquals)
Bug fixes and improvements: [#3897](https://redirect.github.com/google/error-prone/issues/3897), [#4114](https://redirect.github.com/google/error-prone/issues/4114), [#4123](https://redirect.github.com/google/error-prone/issues/4123)
Full Changelog: https://github.com/google/error-prone/compare/v2.22.0...v2.23.0
### [`v2.22.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.22.0): Error Prone 2.22.0
We are considering raising the minimum supported JDK from JDK 11 to JDK 17 in a future release of Error Prone, see [#3803](https://redirect.github.com/google/error-prone/issues/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](https://redirect.github.com/google/error-prone/issues/3803).
New checks:
- [`ClosingStandardOutputStreams`](https://errorprone.info/bugpattern/ClosingStandardOutputStreams): Prevents accidentally closing `System.{out,err}` with try-with-resources
- [`TruthContainsExactlyElementsInUsage`](https://errorprone.info/bugpattern/TruthContainsExactlyElementsInUsage): `containsExactly` is preferred over `containsExactlyElementsIn` when creating new iterables
- [`UnnecessaryAsync`](https://errorprone.info/bugpattern/UnnecessaryAsync): detects unnecessary use of async primitives in local (and hence single-threaded) scopes
- [`ReturnAtTheEndOfVoidFunction`](https://errorprone.info/bugpattern/ReturnAtTheEndOfVoidFunction): detects unnecessary `return` statements at the end of `void` functions
- [`MultimapKeys`](https://errorprone.info/bugpattern/MultimapKeys): Suggests using `keySet()` instead of iterating over `Multimap.keys()`, which does not collapse duplicates
Bug fixes and improvements:
- Don't complain about literal IP addresses in `AddressSelection` (https://github.com/google/error-prone/commit/44b65527debbc57892f21ca3ba458b16771e423e)
- Prevent SuggestedFixes#renameMethod from modifying return type declaration ([#4043](https://redirect.github.com/google/error-prone/issues/4043))
- Fix UnusedVariable false positives for private record parameters ([#2713](https://redirect.github.com/google/error-prone/issues/2713))
- When running in conservative mode, no longer assume that implementations of `Map.get`, etc. return `null` ([#2910](https://redirect.github.com/google/error-prone/issues/2910))
- CanIgnoreReturnValueSuggester: Support additional exempting method annotations ([#4009](https://redirect.github.com/google/error-prone/issues/4009))
- UnusedVariable: exclude junit5's `@RegisterExtension` ([#3892](https://redirect.github.com/google/error-prone/issues/3892))
- Support running all available patch checks ([#947](https://redirect.github.com/google/error-prone/issues/947))
- Upgrade java-diff-utils 4.0 -> 4.12 ([#4081](https://redirect.github.com/google/error-prone/issues/4081))
- Flag unused Refaster template parameters ([#4060](https://redirect.github.com/google/error-prone/issues/4060))
- Support `@SuppressWarnings("all")` ([#4065](https://redirect.github.com/google/error-prone/issues/4065))
- Prevent Refaster `UMemberSelect` from matching method parameters ([#2456](https://redirect.github.com/google/error-prone/issues/2456))
- MissingDefault : Don't require `// fall out` comments on expression switches ([#2709](https://redirect.github.com/google/error-prone/issues/2709))
- Skip UnnecessaryLambda findings for usages in enhanced for loops ([#2518](https://redirect.github.com/google/error-prone/issues/2518))
- Fix bug where nested MissingBraces violations' suggested fixes result in broken code ([#3797](https://redirect.github.com/google/error-prone/issues/3797))
- Add support for specifying `exemptPrefixes`/`exemptNames` for UnusedVariable via flags ([#2753](https://redirect.github.com/google/error-prone/issues/2753))
- UnusedMethod: Added exempting variable annotations ([#2881](https://redirect.github.com/google/error-prone/issues/2881))
Full Changelog: https://github.com/google/error-prone/compare/v2.21.1...v2.22.0
### [`v2.21.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.21.1): Error Prone 2.21.1
Changes:
- Handle overlapping ranges in suppressedRegions (fixes [#4040](https://redirect.github.com/google/error-prone/issues/4040))
- Add [` AddressSelection `](https://errorprone.info/bugpattern/AddressSelection) to discourage APIs that convert a hostname to a single address
Full Changelog: https://github.com/google/error-prone/compare/v2.21.0...v2.21.1
### [`v2.21.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.21.0): Error Prone 2.21.0
New Checkers:
- [`AttemptedNegativeZero`](https://errorprone.info/bugpattern/AttemptedNegativeZero): Prevents accidental use of `-0`, which is the same as `0`. The floating-point negative zero is `-0.0`.
- [`ICCProfileGetInstance`](https://errorprone.info/bugpattern/ICCProfileGetInstance): Warns on uses of `ICC_Profile.getInstance(String)`, due to [JDK-8191622](https://bugs.openjdk.org/browse/JDK-8191622).
- [`MutableGuiceModule`](https://errorprone.info/bugpattern/MutableGuiceModule): Fields in Guice modules should be `final`.
- [`NullableOptional`](https://errorprone.info/bugpattern/NullableOptional): Discourages `@Nullable`-annotated `Optional`s.
- [`OverridingMethodInconsistentArgumentNamesChecker`](https://errorprone.info/bugpattern/OverridingMethodInconsistentArgumentNamesChecker): Arguments of overriding method are inconsistent with overridden method.
Fixed issues: [#3976](https://redirect.github.com/google/error-prone/issues/3976), [#3986](https://redirect.github.com/google/error-prone/issues/3986), [#4001](https://redirect.github.com/google/error-prone/issues/4001), [#4002](https://redirect.github.com/google/error-prone/issues/4002), [#4026](https://redirect.github.com/google/error-prone/issues/4026), [#4027](https://redirect.github.com/google/error-prone/issues/4027)
Full Changelog: https://github.com/google/error-prone/compare/v2.20.0...v2.21.0
### [`v2.20.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.20.0): Error Prone 2.20.0
Changes:
- This release is compatible with early-access builds of JDK 21.
New Checkers:
- [`InlineTrivialConstant`](https://errorprone.info/bugpattern/InlineTrivialConstant)
- [`UnnecessaryStringBuilder`](https://errorprone.info/bugpattern/UnnecessaryStringBuilder)
- [`BanClassLoader`](https://errorprone.info/bugpattern/BanClassLoader)
- [`DereferenceWithNullBranch`](https://errorprone.info/bugpattern/DereferenceWithNullBranch)
- [`DoNotUseRuleChain`](https://errorprone.info/bugpattern/DoNotUseRuleChain)
- [`LockOnNonEnclosingClassLiteral`](https://errorprone.info/bugpattern/LockOnNonEnclosingClassLiteral)
- [`MissingRefasterAnnotation`](https://errorprone.info/bugpattern/MissingRefasterAnnotation)
- [`NamedLikeContextualKeyword`](https://errorprone.info/bugpattern/NamedLikeContextualKeyword)
- [`NonApiType`](https://errorprone.info/bugpattern/NonApiType)
Fixes issues: [#2232](https://redirect.github.com/google/error-prone/issues/2232), [#2243](https://redirect.github.com/google/error-prone/issues/2243), [#2997](https://redirect.github.com/google/error-prone/issues/2997), [#3301](https://redirect.github.com/google/error-prone/issues/3301), [#3843](https://redirect.github.com/google/error-prone/issues/3843), [#3903](https://redirect.github.com/google/error-prone/issues/3903), [#3918](https://redirect.github.com/google/error-prone/issues/3918), [#3923](https://redirect.github.com/google/error-prone/issues/3923), [#3931](https://redirect.github.com/google/error-prone/issues/3931), [#3945](https://redirect.github.com/google/error-prone/issues/3945), [#3946](https://redirect.github.com/google/error-prone/issues/3946)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.19.1...v2.20.0
### [`v2.19.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.19.1): Error Prone 2.19.1
This release fixes a binary compatibility issue when running on JDK 11, see [#3895](https://redirect.github.com/google/error-prone/issues/3895)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.19.0...v2.19.1
### [`v2.19.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.19.0): Error Prone 2.19.0
New Checkers:
- [`NotJavadoc`](https://errorprone.info/bugpattern/NotJavadoc)
- [`StringCaseLocaleUsage`](https://errorprone.info/bugpattern/StringCaseLocaleUsage)
- [`UnnecessaryTestMethodPrefix`](https://errorprone.info/bugpattern/UnnecessaryTestMethodPrefix)
Fixes issues: [#956](https://redirect.github.com/google/error-prone/issues/956), [#3504](https://redirect.github.com/google/error-prone/issues/3504), [#3654](https://redirect.github.com/google/error-prone/issues/3654), [#3703](https://redirect.github.com/google/error-prone/issues/3703), [#3731](https://redirect.github.com/google/error-prone/issues/3731), [#3737](https://redirect.github.com/google/error-prone/issues/3737), [#3760](https://redirect.github.com/google/error-prone/issues/3760), [#3779](https://redirect.github.com/google/error-prone/issues/3779), [#3796](https://redirect.github.com/google/error-prone/issues/3796), [#3809](https://redirect.github.com/google/error-prone/issues/3809), [#3813](https://redirect.github.com/google/error-prone/issues/3813)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.18.0...v2.19.0
### [`v2.18.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.18.0): Error Prone 2.18.0
[Compare Source](https://redirect.github.com/google/error-prone/compare/v2.17.0...v2.18.0)
New Checkers:
- [`InjectOnBugCheckers`](https://errorprone.info/bugpattern/InjectOnBugCheckers)
- [`LabelledBreakTarget`](https://errorprone.info/bugpattern/LabelledBreakTarget)
- [`UnusedLabel`](https://errorprone.info/bugpattern/UnusedLabel)
- [`YodaCondition`](https://errorprone.info/bugpattern/YodaCondition)
Fixes issues: [#1650](https://redirect.github.com/google/error-prone/issues/1650), [#2706](https://redirect.github.com/google/error-prone/issues/2706), [#3404](https://redirect.github.com/google/error-prone/issues/3404), [#3493](https://redirect.github.com/google/error-prone/issues/3493), [#3504](https://redirect.github.com/google/error-prone/issues/3504), [#3519](https://redirect.github.com/google/error-prone/issues/3519), [#3579](https://redirect.github.com/google/error-prone/issues/3579), [#3610](https://redirect.github.com/google/error-prone/issues/3610), [#3632](https://redirect.github.com/google/error-prone/issues/3632), [#3638](https://redirect.github.com/google/error-prone/issues/3638), [#3645](https://redirect.github.com/google/error-prone/issues/3645), [#3646](https://redirect.github.com/google/error-prone/issues/3646), [#3652](https://redirect.github.com/google/error-prone/issues/3652), [#3690](https://redirect.github.com/google/error-prone/issues/3690)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.17.0...v2.18.0
### [`v2.17.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.17.0): Error Prone 2.17.0
[Compare Source](https://redirect.github.com/google/error-prone/compare/v2.16...v2.17.0)
New Checkers:
- [`AvoidObjectArrays`](https://errorprone.info/bugpattern/AvoidObjectArrays)
- [`Finalize`](https://errorprone.info/bugpattern/Finalize)
- [`IgnoredPureGetter`](https://errorprone.info/bugpattern/IgnoredPureGetter)
- [`ImpossibleNullComparison`](https://errorprone.info/bugpattern/ProtoFieldNullComparison)
- [`MathAbsoluteNegative`](https://errorprone.info/bugpattern/MathAbsoluteNegative)
- [`NewFileSystem`](https://errorprone.info/bugpattern/NewFileSystem)
- [`StatementSwitchToExpressionSwitch`](https://errorprone.info/bugpattern/StatementSwitchToExpressionSwitch)
- [`UnqualifiedYield`](https://errorprone.info/bugpattern/UnqualifiedYield)
Fixed issues: [#2321](https://redirect.github.com/google/error-prone/issues/2321), [#3144](https://redirect.github.com/google/error-prone/issues/3144), [#3297](https://redirect.github.com/google/error-prone/issues/3297), [#3428](https://redirect.github.com/google/error-prone/issues/3428), [#3437](https://redirect.github.com/google/error-prone/issues/3437), [#3462](https://redirect.github.com/google/error-prone/issues/3462), [#3482](https://redirect.github.com/google/error-prone/issues/3482), [#3494](https://redirect.github.com/google/error-prone/issues/3494)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.16...v2.17.0
### [`v2.16`](https://redirect.github.com/google/error-prone/releases/tag/v2.16): Error Prone 2.16.0
[Compare Source](https://redirect.github.com/google/error-prone/compare/v2.15.0...v2.16)
New Checkers:
- [`ASTHelpersSuggestions`](https://errorprone.info/bugpattern/ASTHelpersSuggestions)
- [`CanIgnoreReturnValueSuggester`](https://errorprone.info/bugpattern/CanIgnoreReturnValueSuggester)
- [`LenientFormatStringValidation`](https://errorprone.info/bugpattern/LenientFormatStringValidation)
- [`UnnecessarilyUsedValue`](https://errorprone.info/bugpattern/UnnecessarilyUsedValue)
Fixed issues: [#3092](https://redirect.github.com/google/error-prone/issues/3092), [#3220](https://redirect.github.com/google/error-prone/issues/3220), [#3225](https://redirect.github.com/google/error-prone/issues/3225), [#3267](https://redirect.github.com/google/error-prone/issues/3267), [#3441](https://redirect.github.com/google/error-prone/issues/3441)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.15.0...v2.16
### [`v2.15.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.15.0): Error Prone 2.15.0
New Checkers:
- [`BuilderReturnThis`](https://errorprone.info/bugpattern/BuilderReturnThis)
- [`CanIgnoreReturnValueSuggester`](https://errorprone.info/bugpattern/CanIgnoreReturnValueSuggester)
- [`CannotMockFinalClass`](https://errorprone.info/bugpattern/CannotMockFinalClass)
- [`CannotMockFinalMethod`](https://errorprone.info/bugpattern/CannotMockFinalMethod)
- [`DirectInvocationOnMock`](https://errorprone.info/bugpattern/DirectInvocationOnMock)
- [`ExtendsObject`](https://errorprone.info/bugpattern/ExtendsObject)
- [`MockNotUsedInProduction`](https://errorprone.info/bugpattern/MockNotUsedInProduction)
- [`NoCanIgnoreReturnValueOnClasses`](https://errorprone.info/bugpattern/NoCanIgnoreReturnValueOnClasses)
- [`NullArgumentForNonNullParameter`](https://errorprone.info/bugpattern/NullArgumentForNonNullParameter)
- [`SelfAlwaysReturnsThis`](https://errorprone.info/bugpattern/SelfAlwaysReturnsThis)
- [`UnsafeWildcard`](https://errorprone.info/bugpattern/UnsafeWildcard)
- [`UnusedTypeParameter`](https://errorprone.info/bugpattern/UnusedTypeParameter)
Fixed issues: [#1562](https://redirect.github.com/google/error-prone/issues/1562), [#3236](https://redirect.github.com/google/error-prone/issues/3236), [#3245](https://redirect.github.com/google/error-prone/issues/3245), [#3321](https://redirect.github.com/google/error-prone/issues/3321)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.14.0...v2.15.0
### [`v2.14.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.14.0): Error Prone 2.14.0
New checkers:
- [`BanJNDI`](https://errorprone.info/bugpattern/BanJNDI)
- [`EmptyTopLevelDeclaration`](https://errorprone.info/bugpattern/EmptyTopLevelDeclaration)
- [`ErroneousBitwiseExpression`](https://errorprone.info/bugpattern/ErroneousBitwiseExpression)
- [`FuzzyEqualsShouldNotBeUsedInEqualsMethod`](https://errorprone.info/bugpattern/FuzzyEqualsShouldNotBeUsedInEqualsMethod)
- [`Interruption`](https://errorprone.info/bugpattern/Interruption)
- [`NullableOnContainingClass`](https://errorprone.info/bugpattern/NullableOnContainingClass)
Fixed issues: [#3110](https://redirect.github.com/google/error-prone/issues/3110), [#3193](https://redirect.github.com/google/error-prone/issues/3193)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.13.1...v2.14.0
### [`v2.13.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.13.1): Error Prone 2.13.1
#### What's Changed
- Fix a crash in `UnnecessaryBoxedVariable` in [https://github.com/google/error-prone/pull/3118](https://redirect.github.com/google/error-prone/pull/3118)
- Include the unicode character in the diagnostic message in [https://github.com/google/error-prone/pull/3119](https://redirect.github.com/google/error-prone/pull/3119)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.13.0...v2.13.1
### [`v2.13.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.13.0): Error Prone 2.13.0
- Handle all annotations with the simple name `Generated` in `-XepDisableWarningsInGeneratedCode` ([#3094](https://redirect.github.com/google/error-prone/issues/3094))
- Reconcile `BugChecker#isSuppressed` with suppression handling in `ErrorProneScanner` ([#3094](https://redirect.github.com/google/error-prone/issues/3094))
- Fix a bug in `enclosingPackage` ([`8fa64d4`](https://redirect.github.com/google/error-prone/commit/8fa64d48f3a1d8df852ed2546ba02b0e2b7585af))
- Improve performance of fix application ([`186334b`](https://redirect.github.com/google/error-prone/commit/186334bcc45d9c275037cdcce3eb509ae8b7ff50))
- Implicitly treat `@AutoBuilder` setter methods as `@CanIgnoreReturnValue`.
- Remove some obsolete checks (`PublicConstructorForAbstractClass`, `HashCodeToString`)
[Release Diff: v2.12.1...v2.13.0](https://redirect.github.com/google/error-prone/compare/v2.12.1...v2.13.0).
### [`v2.12.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.12.1): Error Prone 2.12.1
- This release adds an infrastructure optimization to `AppliedFix` source code processing.
- [Release Diff: v2.12.0...v2.12.1](https://redirect.github.com/google/error-prone/compare/v2.12.0...v2.12.1).
### [`v2.12.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.12.0): Error Prone 2.12.0
New checks
- [`BoxedPrimitiveEquality`](http://errorprone.info/bugpattern/BoxedPrimitiveEquality)
- [`DoubleBraceInitialization`](http://errorprone.info/bugpattern/DoubleBraceInitialization)
- [`IgnoredPureGetter`](http://errorprone.info/bugpattern/IgnoredPureGetter)
- [`LockOnBoxedPrimitive`](http://errorprone.info/bugpattern/LockOnBoxedPrimitive)
- [`IncorrectMainMethod`](http://errorprone.info/bugpattern/IncorrectMainMethod)
- [`LongDoubleConversion`](http://errorprone.info/bugpattern/LongDoubleConversion)
- [`RobolectricShadowDirectlyOn`](http://errorprone.info/bugpattern/RobolectricShadowDirectlyOn)
- [`StaticAssignmentOfThrowable`](http://errorprone.info/bugpattern/StaticAssignmentOfThrowable)
- [`UnnecessaryLongToIntConversion`](http://errorprone.info/bugpattern/UnnecessaryLongToIntConversion)
- [`Varifier`](http://errorprone.info/bugpattern/Varifier)
Fixed issues: [#58](https://redirect.github.com/google/error-prone/issues/58), [#65](https://redirect.github.com/google/error-prone/issues/65), [#1327](https://redirect.github.com/google/error-prone/issues/1327), [#1654](https://redirect.github.com/google/error-prone/issues/1654), [#2858](https://redirect.github.com/google/error-prone/issues/2858), [#2867](https://redirect.github.com/google/error-prone/issues/2867), [#2916](https://redirect.github.com/google/error-prone/issues/2916), [#2951](https://redirect.github.com/google/error-prone/issues/2951), [#2954](https://redirect.github.com/google/error-prone/issues/2954), [#3006](https://redirect.github.com/google/error-prone/issues/3006), [#3008](https://redirect.github.com/google/error-prone/issues/3008)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.11.0...v2.12.0
### [`v2.11.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.11.0): Error Prone 2.11.0
Error Prone now requires JDK 11 or newer ([https://github.com/google/error-prone/issues/2730](https://redirect.github.com/google/error-prone/issues/2730)).
New checks
- [`AutoValueBuilderDefaultsInConstructor`](http://errorprone.info/bugpattern/AutoValueBuilderDefaultsInConstructor)
- [`FloggerLogString`](http://errorprone.info/bugpattern/FloggerLogString)
- [`UnicodeDirectionalityCharacters`](http://errorprone.info/bugpattern/UnicodeDirectionalityCharacters)
- [`UnicodeInCode`](http://errorprone.info/bugpattern/UnicodeInCode)
- [`AlreadyChecked`](http://errorprone.info/bugpattern/AlreadyChecked)
- [`BugPatternNaming`](http://errorprone.info/bugpattern/BugPatternNaming)
- [`MissingImplementsComparable`](http://errorprone.info/bugpattern/MissingImplementsComparable)
- [`NegativeCharLiteral`](http://errorprone.info/bugpattern/NegativeCharLiteral)
- [`PreferredInterfaceType`](http://errorprone.info/bugpattern/PreferredInterfaceType)
- [`StronglyTypeByteString`](http://errorprone.info/bugpattern/StronglyTypeByteString)
- [`UsingJsr305CheckReturnValue`](http://errorprone.info/bugpattern/UsingJsr305CheckReturnValue)
Fixed issues: [#2641](https://redirect.github.com/google/error-prone/issues/2641), [#2705](https://redirect.github.com/google/error-prone/issues/2705), [#2776](https://redirect.github.com/google/error-prone/issues/2776), [#2798](https://redirect.github.com/google/error-prone/issues/2798), [#2799](https://redirect.github.com/google/error-prone/issues/2799), [#2819](https://redirect.github.com/google/error-prone/issues/2819), [#2820](https://redirect.github.com/google/error-prone/issues/2820), [#2831](https://redirect.github.com/google/error-prone/issues/2831), [#2833](https://redirect.github.com/google/error-prone/issues/2833), [#2834](https://redirect.github.com/google/error-prone/issues/2834), [#2835](https://redirect.github.com/google/error-prone/issues/2835), [#2861](https://redirect.github.com/google/error-prone/issues/2861), [#2873](https://redirect.github.com/google/error-prone/issues/2873), [#2889](https://redirect.github.com/google/error-prone/issues/2889), [#2892](https://redirect.github.com/google/error-prone/issues/2892), [#2901](https://redirect.github.com/google/error-prone/issues/2901)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.10.0...v2.11.0
### [`v2.10.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.10.0): Error Prone 2.10.0
New checks
- [`AlwaysThrows`](http://errorprone.info/bugpattern/AlwaysThrows)
- [`StackTraceElementGetClass`](http://errorprone.info/bugpattern/StackTraceElementGetClass)
- [`BareDotMetacharacter`](http://errorprone.info/bugpattern/BareDotMetacharacter)
- [`DistinctVarargsChecker`](http://errorprone.info/bugpattern/DistinctVarargsChecker)
- [`MalformedInlineTag`](http://errorprone.info/bugpattern/MalformedInlineTag)
- [`MemoizeConstantVisitorStateLookups`](http://errorprone.info/bugpattern/MemoizeConstantVisitorStateLookups)
- [`UnicodeEscape`](http://errorprone.info/bugpattern/UnicodeEscape)
- [`FieldMissingNullable`](http://errorprone.info/bugpattern/FieldMissingNullable)
- [`Java8ApiChecker`](http://errorprone.info/bugpattern/Java8ApiChecker)
- [`ParameterMissingNullable`](http://errorprone.info/bugpattern/ParameterMissingNullable)
- [`TooManyParameters`](http://errorprone.info/bugpattern/TooManyParameters)
- [`TryWithResourcesVariable`](http://errorprone.info/bugpattern/TryWithResourcesVariable)
- [`UnnecessaryFinal`](http://errorprone.info/bugpattern/UnnecessaryFinal)
- [`VoidMissingNullable`](http://errorprone.info/bugpattern/VoidMissingNullable)
Fixed issues: [#2616](https://redirect.github.com/google/error-prone/issues/2616), [#2629](https://redirect.github.com/google/error-prone/issues/2629)
**Full Changelog**: https://github.com/google/error-prone/compare/v2.9.0...v2.10.0
### [`v2.9.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.9.0): Error Prone 2.9.0
Release Error Prone 2.9.0
New checks:
- DeprecatedVariable
- PublicApiNamedStreamShouldReturnStream
Fixes [#2124](https://redirect.github.com/google/error-prone/issues/2124), [#2371](https://redirect.github.com/google/error-prone/issues/2371), [#2393](https://redirect.github.com/google/error-prone/issues/2393), [#2470](https://redirect.github.com/google/error-prone/issues/2470)
### [`v2.8.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.8.1): Error Prone 2.8.1
This release adds a new check ([LoopOverCharArray](https://errorprone.info/bugpattern/LoopOverCharArray)), and a handful of other small improvements (https://github.com/google/error-prone/compare/v2.8.0...v2.8.1).
### [`v2.8.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.8.0): Error Prone 2.8.0
New Checks:
- [JUnit4TestsNotRunWithinEnclosed](https://errorprone.info/bugpattern/JUnit4TestsNotRunWithinEnclosed)
- [OptionalOfRedundantMethod](https://errorprone.info/bugpattern/OptionalOfRedundantMethod)
- [UnnecessaryAssignment](https://errorprone.info/bugpattern/UnnecessaryAssignment)
- [UnrecognisedJavadocTag](https://errorprone.info/bugpattern/UnrecognisedJavadocTag)
- [AnnotationMirrorToString](https://errorprone.info/bugpattern/AnnotationMirrorToString)
- [AnnotationValueToString](https://errorprone.info/bugpattern/AnnotationValueToString)
- [EqualsMissingNullable](https://errorprone.info/bugpattern/EqualsMissingNullable)
- [ReturnMissingNullable](https://errorprone.info/bugpattern/ReturnMissingNullable)
Fixes [#1652](https://redirect.github.com/google/error-prone/issues/1652), [#2122](https://redirect.github.com/google/error-prone/issues/2122), [#2122](https://redirect.github.com/google/error-prone/issues/2122), [#2366](https://redirect.github.com/google/error-prone/issues/2366), [#2404](https://redirect.github.com/google/error-prone/issues/2404), [#2411](https://redirect.github.com/google/error-prone/issues/2411)
### [`v2.7.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.7.1): Error Prone 2.7.1
Everything in [Error Prone 2.7.0](https://redirect.github.com/google/error-prone/releases/tag/v2.7.0), plus an [additional fix for JDK 17](https://redirect.github.com/google/error-prone/commit/ff07935205757a2eb8b6ef52af1751948752b6ab).
### [`v2.7.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.7.0): Error Prone 2.7.0
Changes
- Initial support for running on JDK 17 EA builds. Supports for Java 17 languages features is incomplete; [bug reports](https://redirect.github.com/google/error-prone/issues) for issues with Java 17 are welcome.
- `@InlineMe` is a deprecation mechanism that allows automated tools to cleanup existing callers: http://errorprone.info/docs/inlineme
New checks:
- [EqualsNull](http://errorprone.info/bugpattern/EqualsNull)
- [MissingBraces](http://errorprone.info/bugpattern/MissingBraces)
- [NullablePrimitiveArray](http://errorprone.info/bugpattern/NullablePrimitiveArray)
- [OptionalMapUnusedValue](http://errorprone.info/bugpattern/OptionalMapUnusedValue)
- [TestParametersNotInitialized](http://errorprone.info/bugpattern/TestParametersNotInitialized)
Closed issues: [#2257](https://redirect.github.com/google/error-prone/issues/2257), [#2260](https://redirect.github.com/google/error-prone/issues/2260), [#2282](https://redirect.github.com/google/error-prone/issues/2282), [#2301](https://redirect.github.com/google/error-prone/issues/2301), [#2322](https://redirect.github.com/google/error-prone/issues/2322), [#2323](https://redirect.github.com/google/error-prone/issues/2323), [#2324](https://redirect.github.com/google/error-prone/issues/2324)
### [`v2.6.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.6.0): Error Prone 2.6.0
Checkers Added:
- [CharacterGetNumericValue](http://errorprone.info/bugpattern/CharacterGetNumericValue)
- [ErroneousThreadPoolConstructorChecker](http://errorprone.info/bugpattern/ErroneousThreadPoolConstructorChecker)
- [FloggerArgumentToString](http://errorprone.info/bugpattern/FloggerArgumentToString)
- [FloggerStringConcatenation](http://errorprone.info/bugpattern/FloggerStringConcatenation)
- [ProtoBuilderReturnValueIgnored](http://errorprone.info/bugpattern/ProtoBuilderReturnValueIgnored)
- [RethrowReflectiveOperationExceptionAsLinkageError](http://errorprone.info/bugpattern/RethrowReflectiveOperationExceptionAsLinkageError)
- [SystemOut](http://errorprone.info/bugpattern/SystemOut)
- [UnnecessaryAnonymousClass](http://errorprone.info/bugpattern/UnnecessaryAnonymousClass)
Issues Closed:
- RFE: configurable DoNotCall/RestrictedApi/JdkObsolete/DefaultCharset/JavaTimeDefaultTimeZone check ([#1211](https://redirect.github.com/google/error-prone/issues/1211))
- Add SystemOut checker ([#1534](https://redirect.github.com/google/error-prone/issues/1534))
- WellKnownMutability: add java.awt.Color ([#1682](https://redirect.github.com/google/error-prone/issues/1682))
- IdentityHashMapUsage warnings differ from its documentation ([#2095](https://redirect.github.com/google/error-prone/issues/2095))
- UnusedMethod no longer works ([#2215](https://redirect.github.com/google/error-prone/issues/2215))
- Document naming convention for UnusedMethod ([#2223](https://redirect.github.com/google/error-prone/issues/2223))
### [`v2.5.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.5.1): Error Prone 2.5.1
Changes
NoSuchMethodError: 'com.sun.tools.javac.util.List com.sun.tools.javac.code.Symbol$TypeSymbol.getEnclosedElements
- Fixed `NoSuchMethodError` crash in `HidingField` ([#2092](https://redirect.github.com/google/error-prone/issues/2092))
- Fixed `NoSuchElementException` crash in `RestrictedApiChecker` ([#2099](https://redirect.github.com/google/error-prone/issues/2099))
- False positive in `DifferentNameButSame` ([#2094](https://redirect.github.com/google/error-prone/issues/2094))
- False positive in `UnnecessaryOptionalGet` ([#2101](https://redirect.github.com/google/error-prone/issues/2101))
- False positive in `UnnecessaryMethodReference` ([#2102](https://redirect.github.com/google/error-prone/issues/2102))
- Fixed a regression in JDK 16-EA support ([#2105](https://redirect.github.com/google/error-prone/issues/2105))
### [`v2.5.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.5.0): Error Prone 2.5.0
New checks:
- [BanSerializableRead](http://errorprone.info/bugpattern/BanSerializableRead)
- [CatchingUnchecked](http://errorprone.info/bugpattern/CatchingUnchecked)
- [ComputeIfAbsentAmbiguousReference](http://errorprone.info/bugpattern/ComputeIfAbsentAmbiguousReference)
- [DangerousLiteralNull](http://errorprone.info/bugpattern/DangerousLiteralNull)
- [DateChecker](http://errorprone.info/bugpattern/DateChecker)
- [DifferentNameButSame](http://errorprone.info/bugpattern/DifferentNameButSame)
- [DoNotCallSuggester](http://errorprone.info/bugpattern/DoNotCallSuggester)
- [DoNotClaimAnnotations](http://errorprone.info/bugpattern/DoNotClaimAnnotations)
- [DoNotMockAutoValue](http://errorprone.info/bugpattern/DoNotMockAutoValue)
- [FloggerFormatString](http://errorprone.info/bugpattern/FloggerFormatString)
- [FloggerLogVarargs](http://errorprone.info/bugpattern/FloggerLogVarargs)
- [FloggerLogWithCause](http://errorprone.info/bugpattern/FloggerLogWithCause)
- [FloggerMessageFormat](http://errorprone.info/bugpattern/FloggerMessageFormat)
- [FloggerPassedAround](http://errorprone.info/bugpattern/FloggerPassedAround)
- [FloggerRedundantIsEnabled](http://errorprone.info/bugpattern/FloggerRedundantIsEnabled)
- [FloggerRequiredModifiers](http://errorprone.info/bugpattern/FloggerRequiredModifiers)
- [FloggerSplitLogStatement](http://errorprone.info/bugpattern/FloggerSplitLogStatement)
- [FloggerWithCause](http://errorprone.info/bugpattern/FloggerWithCause)
- [FloggerWithoutCause](http://errorprone.info/bugpattern/FloggerWithoutCause)
- [HashCodeToString](http://errorprone.info/bugpattern/HashCodeToString)
- [IdentityHashMapUsage](http://errorprone.info/bugpattern/IdentityHashMapUsage)
- [ImmutableMemberCollection](http://errorprone.info/bugpattern/ImmutableMemberCollection)
- [ImmutableSetForContains](http://errorprone.info/bugpattern/ImmutableSetForContains)
- [InitializeInline](http://errorprone.info/bugpattern/InitializeInline)
- [InvalidThrowsLink](http://errorprone.info/bugpattern/InvalidThrowsLink)
- [IsInstanceIncompatibleType](http://errorprone.info/bugpattern/IsInstanceIncompatibleType)
- [JavaUtilDate](http://errorprone.info/bugpattern/JavaUtilDate)
- [JodaConstructors](http://errorprone.info/bugpattern/JodaConstructors)
- [JodaDateTimeConstants](http://errorprone.info/bugpattern/JodaDateTimeConstants)
- [LongFloatConversion](http://errorprone.info/bugpattern/LongFloatConversion)
- [MemberName](http://errorprone.info/bugpattern/MemberName)
- [MisplacedScopeAnnotations](http://errorprone.info/bugpattern/MisplacedScopeAnnotations)
- [ObjectEqualsForPrimitives](http://errorprone.info/bugpattern/ObjectEqualsForPrimitives)
- [OptionalMapUnusedValue](http://errorprone.info/bugpattern/OptionalMapUnusedValue)
- [ReturnsNullCollection](http://errorprone.info/bugpattern/ReturnsNullCollection)
- [StaticMockMember](http://errorprone.info/bugpattern/StaticMockMember)
- [StreamToIterable](http://errorprone.info/bugpattern/StreamToIterable)
- [SymbolToString](http://errorprone.info/bugpattern/SymbolToString)
- [TypeToString](http://errorprone.info/bugpattern/TypeToString)
- [UnnecessarilyVisible](http://errorprone.info/bugpattern/UnnecessarilyVisible)
- [UnnecessaryMethodReference](http://errorprone.info/bugpattern/UnnecessaryMethodReference)
- [UnnecessaryOptionalGet](http://errorprone.info/bugpattern/UnnecessaryOptionalGet)
- [UnsafeLocaleUsage](http://errorprone.info/bugpattern/UnsafeLocaleUsage)
- [UseEnumSwitch](http://errorprone.info/bugpattern/UseEnumSwitch)
- [UseTimeInScope](http://errorprone.info/bugpattern/UseTimeInScope)
- [WrongOneof](http://errorprone.info/bugpattern/WrongOneof)
- [ZoneIdOfZ](http://errorprone.info/bugpattern/ZoneIdOfZ)
Fixed issues: [#1044](https://redirect.github.com/google/error-prone/issues/1044) [#1177](https://redirect.github.com/google/error-prone/issues/1177) [#1275](https://redirect.github.com/google/error-prone/issues/1275) [#1322](https://redirect.github.com/google/error-prone/issues/1322) [#1326](https://redirect.github.com/google/error-prone/issues/1326) [#1503](https://redirect.github.com/google/error-prone/issues/1503) [#1529](https://redirect.github.com/google/error-prone/issues/1529) [#1563](https://redirect.github.com/google/error-prone/issues/1563) [#1645](https://redirect.github.com/google/error-prone/issues/1645) [#1650](https://redirect.github.com/google/error-prone/issues/1650) [#1652](https://redirect.github.com/google/error-prone/issues/1652) [#1653](https://redirect.github.com/google/error-prone/issues/1653) [#1655](https://redirect.github.com/google/error-prone/issues/1655) [#1665](https://redirect.github.com/google/error-prone/issues/1665) [#1670](https://redirect.github.com/google/error-prone/issues/1670) [#1672](https://redirect.github.com/google/error-prone/issues/1672) [#1694](https://redirect.github.com/google/error-prone/issues/1694) [#1699](https://redirect.github.com/google/error-prone/issues/1699) [#1705](https://redirect.github.com/google/error-prone/issues/1705) [#1767](https://redirect.github.com/google/error-prone/issues/1767) [#1788](https://redirect.github.com/google/error-prone/issues/1788) [#1809](https://redirect.github.com/google/error-prone/issues/1809) [#1849](https://redirect.github.com/google/error-prone/issues/1849) [#1873](https://redirect.github.com/google/error-prone/issues/1873) [#1916](https://redirect.github.com/google/error-prone/issues/1916) [#1981](https://redirect.github.com/google/error-prone/issues/1981) [#1982](https://redirect.github.com/google/error-prone/issues/1982) [#1986](https://redirect.github.com/google/error-prone/issues/1986) [#1987](https://redirect.github.com/google/error-prone/issues/1987) [#2009](https://redirect.github.com/google/error-prone/issues/2009) [#2026](https://redirect.github.com/google/error-prone/issues/2026) [#2029](https://redirect.github.com/google/error-prone/issues/2029) [#2059](https://redirect.github.com/google/error-prone/issues/2059) [#2064](https://redirect.github.com/google/error-prone/issues/2064)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
2.4.0
->2.35.1
Release Notes
google/error-prone (com.google.errorprone:error_prone_core)
### [`v2.35.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.35.1): 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](https://redirect.github.com/google/error-prone/issues/4584) and [#4634](https://redirect.github.com/google/error-prone/issues/4634). Future versions of Error Prone will upgrade back to protobuf 4.x. Full changelog: https://github.com/google/error-prone/compare/v2.35.0...v2.35.1 ### [`v2.35.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.35.0): Error Prone 2.35.0 Changes: - Fix handling of `\s` before the trailing delimiter in [`MisleadingEscapedSpace`](https://errorprone.info/bugpattern/MisleadingEscapedSpace) - [`TimeUnitMismatch`](https://errorprone.info/bugpattern/TimeUnitMismatch) improvements: handle binary trees, consider trees like `fooSeconds * 1000` to have units of millis New checks: - [`JavaDurationGetSecondsToToSeconds`](https://errorprone.info/bugpattern/JavaDurationGetSecondsToToSeconds): Prefer `duration.toSeconds()` over `duration.getSeconds()` Full changelog: https://github.com/google/error-prone/compare/v2.34.0...v2.35.0 ### [`v2.34.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.34.0): Error Prone 2.34.0 Changes: - Passing the javac flag `--should-stop=ifError=FLOW` is now required when running Error Prone ([#4595](https://redirect.github.com/google/error-prone/issues/4595)) - The `MemberName` check was renamed to [`IdentifierName`](https://errorprone.info/bugpattern/IdentifierName) New checks: - [`FutureTransformAsync`](https://errorprone.info/bugpattern/FutureTransformAsync): The usage of transformAsync is not necessary when all the return values of the transformation function are immediate futures. - [`MisformattedTestData`](https://errorprone.info/bugpattern/MisformattedTestData): Reformats Java source code inside Error Prone test cases. - [`MisleadingEscapedSpace`](https://errorprone.info/bugpattern/MisleadingEscapedSpace): Using `\s` anywhere except at the end of a line in a text block is potentially misleading. - [`ThrowIfUncheckedKnownUnchecked`](https://errorprone.info/bugpattern/ThrowIfUncheckedKnownUnchecked): `throwIfUnchecked(knownUnchecked)` is equivalent to `throw knownUnchecked`. Closed issues: [#4595](https://redirect.github.com/google/error-prone/issues/4595), [#4598](https://redirect.github.com/google/error-prone/issues/4598), [#4620](https://redirect.github.com/google/error-prone/issues/4620) Full changelog: https://github.com/google/error-prone/compare/v2.33.0...v2.34.0 ### [`v2.33.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.33.0): Error Prone 2.33.0 Similar to release [2.32.0](https://redirect.github.com/google/error-prone/releases/v2.32.0), the minimum supported JDK version to run Error Prone is JDK 17 ([#3803](https://redirect.github.com/google/error-prone/issues/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`](https://errorprone.info/bugpattern/ArrayRecordComponent): Record components should not be arrays. Full changelog: https://github.com/google/error-prone/compare/v2.32.0...v2.33.0 ### [`v2.32.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.32.0): Error Prone 2.32.0 The minimum support JDK version to run Error Prone is now JDK 17 ([#3803](https://redirect.github.com/google/error-prone/issues/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: https://github.com/google/error-prone/compare/v2.31.0...v2.32.0 ### [`v2.31.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.31.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](https://redirect.github.com/google/error-prone/issues/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`](https://redirect.github.com/google/error-prone/blob/2656f48902f6723f3147caa117372309dbc6c15f/type_annotations/src/main/java/com/google/errorprone/annotations/ThreadSafeTypeParameter.java) with enforcement by [ThreadSafe](https://errorprone.info/bugpattern/ThreadSafe) - Improved support for latest JDK 24 EA builds - Error Prone is now distributed as a Multi-Release jar ([#3756](https://redirect.github.com/google/error-prone/issues/3756)) New checks: - [`AutoValueBoxedValues`](https://errorprone.info/bugpattern/AutoValueBoxedValues): AutoValue instances should not usually contain boxed types that are not Nullable. We recommend removing the unnecessary boxing. Full changelog: https://github.com/google/error-prone/compare/v2.30.0...v2.31.0 ### [`v2.30.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.30.0): Error Prone 2.30.0 New checks: - [`AutoValueBoxedValues`](https://errorprone.info/bugpattern/AutoValueBoxedValues): Detects unnecessary boxing in AutoValue classes. - [`DefaultLocale`](https://errorprone.info/bugpattern/DefaultLocale): Detects implicit use of the JVM default locale, which can result in differing behaviour between JVM executions. - [`UnnecessaryBreakInSwitch`](https://errorprone.info/bugpattern/UnnecessaryBreakInSwitch): Remove unnecessary `break` statements in `->` switches. Closed issues: [#632](https://redirect.github.com/google/error-prone/issues/632), [#4487](https://redirect.github.com/google/error-prone/issues/4487) Full changelog: https://github.com/google/error-prone/compare/v2.29.2...v2.30.0 ### [`v2.29.2`](https://redirect.github.com/google/error-prone/releases/tag/v2.29.2): Error Prone 2.29.2 This release contains all of the changes in [2.29.0](https://redirect.github.com/google/error-prone/releases/tag/v2.29.0) and [2.29.1](https://redirect.github.com/google/error-prone/releases/tag/v2.29.1), plus: - a bug fix for a crash in `TraditionalSwitchExpression` ([https://github.com/google/error-prone/issues/4479](https://redirect.github.com/google/error-prone/issues/4479)) - restores the `module-info` for the annotations jar, which was accidentally removed ([https://github.com/google/error-prone/issues/4480](https://redirect.github.com/google/error-prone/issues/4480)) Full Changelog: https://github.com/google/error-prone/compare/v2.29.1...v2.29.2 ### [`v2.29.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.29.1): Error Prone 2.29.1 This release contains all of the changes in [2.29.0](https://redirect.github.com/google/error-prone/releases/tag/v2.29.0), plus: - a bug fix to `UnusedVariable` to handle unnamed `_` variables ([https://github.com/google/error-prone/issues/4451](https://redirect.github.com/google/error-prone/issues/4451)) - a bug fix for a crash in `SetUnrecognized` ([https://github.com/google/error-prone/issues/4475](https://redirect.github.com/google/error-prone/issues/4475)) Full Changelog: https://github.com/google/error-prone/compare/v2.29.0...v2.29.1 ### [`v2.29.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.29.0): Error Prone 2.29.0 New checks: - [`MissingRuntimeRetention`](https://errorprone.info/bugpattern/MissingRuntimeRetention) - [`SetUnrecognized`](https://errorprone.info/bugpattern/SetUnrecognized) - [`StatementSwitchToExpressionSwitch`](https://errorprone.info/bugpattern/StatementSwitchToExpressionSwitch) Closed issues: [#4318](https://redirect.github.com/google/error-prone/issues/4318), [#4429](https://redirect.github.com/google/error-prone/issues/4429), [#4467](https://redirect.github.com/google/error-prone/issues/4467) Full Changelog: https://github.com/google/error-prone/compare/v2.28.0...v2.29.0 ### [`v2.28.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.28.0): Error Prone 2.28.0 Error Prone nows supports the latest JDK 23 EA builds ([#4412](https://redirect.github.com/google/error-prone/issues/4412), [#4415](https://redirect.github.com/google/error-prone/issues/4415)). Closed issues: - Improved errors for invalid check severities ([#4306](https://redirect.github.com/google/error-prone/issues/4306)). - Fix a crash with nested `instanceof` patterns ([#4349](https://redirect.github.com/google/error-prone/issues/4349)). - Fix a crash in JUnitIncompatibleType ([#4377](https://redirect.github.com/google/error-prone/issues/4377)). - In ObjectEqualsForPrimitives, don't suggest replacing `equal` with `==` for floating-point values ([#4392](https://redirect.github.com/google/error-prone/issues/4392)). New checks: - [`DeeplyNested`](https://errorprone.info/bugpattern/DeeplyNested) discourages very deeply nested code that can cause StackOverflowErrors during compilation. - [`GuiceNestedCombine`](https://errorprone.info/bugpattern/GuiceNestedCombine) discourages nesting of `Modules.combine()`, which is unnecessary. - [`PatternMatchingInstanceof`](https://errorprone.info/bugpattern/PatternMatchingInstanceof) migrates code to use [pattern matching for `instanceof`](https://openjdk.org/jeps/394) - [`SunApi`](https://errorprone.info/bugpattern/SunApi) discourages use of internal proprietary JDK APIs which may be removed from future releases. Full Changelog: https://github.com/google/error-prone/compare/v2.27.1...v2.28.0 ### [`v2.27.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.27.1): Error Prone 2.27.1 This release contains all of the changes in [2.27.0](https://redirect.github.com/google/error-prone/releases/tag/v2.27.0), plus a bug fix to [`ClassInitializationDeadlock`](https://errorprone.info/bugpattern/ClassInitializationDeadlock) ([https://github.com/google/error-prone/issues/4378](https://redirect.github.com/google/error-prone/issues/4378)) Full Changelog: https://github.com/google/error-prone/compare/v2.27.0...v2.27.1 ### [`v2.27.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.27.0): Error Prone 2.27.0 New checks: - [`ClassInitializationDeadlock`](https://errorprone.info/bugpattern/ClassInitializationDeadlock) detects class initializers that reference subtypes of the current class, which can result in deadlocks. - [`MockitoDoSetup`](https://errorprone.info/bugpattern/MockitoDoSetup) suggests using `when`/`thenReturn` over `doReturn`/`when` for additional type safety. - [`VoidUsed`](https://errorprone.info/bugpattern/VoidUsed) suggests using a literal `null` instead of referring to a `Void`-typed variable. Modified checks: - `TruthSelfEquals` has been renamed and generalized as [`SelfAssertion`](https://errorprone.info/bugpattern/SelfAssertion) - [`RedundantSetterCall`](https://errorprone.info/bugpattern/RedundantSetterCall) has been improved, and enabled as an error oby default Closed issues: [#4291](https://redirect.github.com/google/error-prone/issues/4291). [#4308](https://redirect.github.com/google/error-prone/issues/4308), [#4343](https://redirect.github.com/google/error-prone/issues/4343), [#4320](https://redirect.github.com/google/error-prone/issues/4320) Full Changelog: https://github.com/google/error-prone/compare/v2.26.1...v2.27.0 ### [`v2.26.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.26.1): Error Prone 2.26.1 This release contains all of the changes in [2.26.0](https://redirect.github.com/google/error-prone/releases/tag/v2.26.0), plus a bug fix to the module name of the annotations artifact `com.google.errorprone.annotations` (https://github.com/google/error-prone/commit/9d99ee76f2ca8568b69150f5df7fe845c8545d16) Starting in `2.26.x`, the 'annotations' artifact now includes a `module-info.java` for Java Platform Module System support, thanks to [@sgammon](https://redirect.github.com/sgammon) in [#4311](https://redirect.github.com/google/error-prone/issues/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: ```diff module your.module { ... + requires static com.google.errorprone.annotations; } ``` *** Full Changelog: https://github.com/google/error-prone/compare/v2.26.0...v2.26.1 ### [`v2.26.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.26.0): Error Prone 2.26.0 **Warning: This release contains a bug, please use [2.26.1](https://redirect.github.com/google/error-prone/releases/tag/v2.26.1) or newer instead.** Changes: - The 'annotations' artifact now includes a `module-info.java` for Java Platform Module System support, thanks to [@sgammon](https://redirect.github.com/sgammon) in [#4311](https://redirect.github.com/google/error-prone/issues/4311). - Disabled checks passed to `-XepPatchChecks` are now ignored, instead of causing a crash. Thanks to [@oxkitsune](https://redirect.github.com/oxkitsune) in [#4028](https://redirect.github.com/google/error-prone/issues/4028). New checks: - [`SystemConsoleNull`](https://errorprone.info/bugpattern/SystemConsoleNull): Null-checking `System.console()` is not a reliable way to detect if the console is connected to a terminal. - [`EnumOrdinal`](https://errorprone.info/bugpattern/EnumOrdinal): Discourage uses of `Enum.ordinal()` Closed issues: [#2649](https://redirect.github.com/google/error-prone/issues/2649), [#3908](https://redirect.github.com/google/error-prone/issues/3908), [#4028](https://redirect.github.com/google/error-prone/issues/4028), [#4311](https://redirect.github.com/google/error-prone/issues/4311), [#4314](https://redirect.github.com/google/error-prone/issues/4314) Full Changelog: https://github.com/google/error-prone/compare/v2.25.0...v2.26.0 ### [`v2.25.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.25.0): Error Prone 2.25.0 New checks: - [`JUnitIncompatibleType`](https://errorprone.info/bugpattern/JUnitIncompatibleType): Detects incompatible types passed to an assertion, similar to [` TruthIncompatibleType `](https://errorprone.info/bugpattern/TruthIncompatibleType) - [`RedundantSetterCall`](https://errorprone.info/bugpattern/RedundantSetterCall): Detects fields set twice in the same chained expression. Generalization of previous `ProtoRedundantSet` check to also handle [AutoValue](https://redirect.github.com/google/auto/blob/main/value/userguide/index.md). Closed issues: [#4195](https://redirect.github.com/google/error-prone/issues/4195), [#4224](https://redirect.github.com/google/error-prone/issues/4224), [#4228](https://redirect.github.com/google/error-prone/issues/4228), [#4248](https://redirect.github.com/google/error-prone/issues/4248), [#4249](https://redirect.github.com/google/error-prone/issues/4249), [#4251](https://redirect.github.com/google/error-prone/issues/4251) Full Changelog: https://github.com/google/error-prone/compare/v2.24.1...v2.25.0 ### [`v2.24.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.24.1): Error Prone 2.24.1 Changes: - Add an assertion to try to help debug [https://github.com/google/error-prone/issues/4225](https://redirect.github.com/google/error-prone/issues/4225) Full Changelog: https://github.com/google/error-prone/compare/v2.24.0...v2.24.1 ### [`v2.24.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.24.0): Error Prone 2.24.0 New checks: - [`MultipleNullnessAnnotations`](https://errorprone.info/bugpattern/MultipleNullnessAnnotations): Discourage multiple nullness annotations - [`NullableTypeParameter`](https://errorprone.info/bugpattern/NullableTypeParameter): Discourage nullness annotations on type parameters - [`NullableWildcard`](https://errorprone.info/bugpattern/NullableWildcard): Discourage nullness annotations on wildcards - [`SuperCallToObjectMethod`](https://errorprone.info/bugpattern/SuperCallToObjectMethod): Generalization of `SuperEqualsIsObjectEquals`, now covers `hashCode` Full Changelog: https://github.com/google/error-prone/compare/v2.23.0...v2.24.0 ### [`v2.23.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.23.0): Error Prone 2.23.0 New checks: - [`DuplicateDateFormatField`](https://errorprone.info/bugpattern/DuplicateDateFormatField) - [`NonFinalStaticField`](https://errorprone.info/bugpattern/NonFinalStaticField) - [`StringCharset`](https://errorprone.info/bugpattern/StringCharset) - [`StringFormatWithLiteral`](https://errorprone.info/bugpattern/StringFormatWithLiteral) - [`SuperEqualsIsObjectEquals`](https://errorprone.info/bugpattern/SuperEqualsIsObjectEquals) Bug fixes and improvements: [#3897](https://redirect.github.com/google/error-prone/issues/3897), [#4114](https://redirect.github.com/google/error-prone/issues/4114), [#4123](https://redirect.github.com/google/error-prone/issues/4123) Full Changelog: https://github.com/google/error-prone/compare/v2.22.0...v2.23.0 ### [`v2.22.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.22.0): Error Prone 2.22.0 We are considering raising the minimum supported JDK from JDK 11 to JDK 17 in a future release of Error Prone, see [#3803](https://redirect.github.com/google/error-prone/issues/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](https://redirect.github.com/google/error-prone/issues/3803). New checks: - [`ClosingStandardOutputStreams`](https://errorprone.info/bugpattern/ClosingStandardOutputStreams): Prevents accidentally closing `System.{out,err}` with try-with-resources - [`TruthContainsExactlyElementsInUsage`](https://errorprone.info/bugpattern/TruthContainsExactlyElementsInUsage): `containsExactly` is preferred over `containsExactlyElementsIn` when creating new iterables - [`UnnecessaryAsync`](https://errorprone.info/bugpattern/UnnecessaryAsync): detects unnecessary use of async primitives in local (and hence single-threaded) scopes - [`ReturnAtTheEndOfVoidFunction`](https://errorprone.info/bugpattern/ReturnAtTheEndOfVoidFunction): detects unnecessary `return` statements at the end of `void` functions - [`MultimapKeys`](https://errorprone.info/bugpattern/MultimapKeys): Suggests using `keySet()` instead of iterating over `Multimap.keys()`, which does not collapse duplicates Bug fixes and improvements: - Don't complain about literal IP addresses in `AddressSelection` (https://github.com/google/error-prone/commit/44b65527debbc57892f21ca3ba458b16771e423e) - Prevent SuggestedFixes#renameMethod from modifying return type declaration ([#4043](https://redirect.github.com/google/error-prone/issues/4043)) - Fix UnusedVariable false positives for private record parameters ([#2713](https://redirect.github.com/google/error-prone/issues/2713)) - When running in conservative mode, no longer assume that implementations of `Map.get`, etc. return `null` ([#2910](https://redirect.github.com/google/error-prone/issues/2910)) - CanIgnoreReturnValueSuggester: Support additional exempting method annotations ([#4009](https://redirect.github.com/google/error-prone/issues/4009)) - UnusedVariable: exclude junit5's `@RegisterExtension` ([#3892](https://redirect.github.com/google/error-prone/issues/3892)) - Support running all available patch checks ([#947](https://redirect.github.com/google/error-prone/issues/947)) - Upgrade java-diff-utils 4.0 -> 4.12 ([#4081](https://redirect.github.com/google/error-prone/issues/4081)) - Flag unused Refaster template parameters ([#4060](https://redirect.github.com/google/error-prone/issues/4060)) - Support `@SuppressWarnings("all")` ([#4065](https://redirect.github.com/google/error-prone/issues/4065)) - Prevent Refaster `UMemberSelect` from matching method parameters ([#2456](https://redirect.github.com/google/error-prone/issues/2456)) - MissingDefault : Don't require `// fall out` comments on expression switches ([#2709](https://redirect.github.com/google/error-prone/issues/2709)) - Skip UnnecessaryLambda findings for usages in enhanced for loops ([#2518](https://redirect.github.com/google/error-prone/issues/2518)) - Fix bug where nested MissingBraces violations' suggested fixes result in broken code ([#3797](https://redirect.github.com/google/error-prone/issues/3797)) - Add support for specifying `exemptPrefixes`/`exemptNames` for UnusedVariable via flags ([#2753](https://redirect.github.com/google/error-prone/issues/2753)) - UnusedMethod: Added exempting variable annotations ([#2881](https://redirect.github.com/google/error-prone/issues/2881)) Full Changelog: https://github.com/google/error-prone/compare/v2.21.1...v2.22.0 ### [`v2.21.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.21.1): Error Prone 2.21.1 Changes: - Handle overlapping ranges in suppressedRegions (fixes [#4040](https://redirect.github.com/google/error-prone/issues/4040)) - Add [` AddressSelection `](https://errorprone.info/bugpattern/AddressSelection) to discourage APIs that convert a hostname to a single address Full Changelog: https://github.com/google/error-prone/compare/v2.21.0...v2.21.1 ### [`v2.21.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.21.0): Error Prone 2.21.0 New Checkers: - [`AttemptedNegativeZero`](https://errorprone.info/bugpattern/AttemptedNegativeZero): Prevents accidental use of `-0`, which is the same as `0`. The floating-point negative zero is `-0.0`. - [`ICCProfileGetInstance`](https://errorprone.info/bugpattern/ICCProfileGetInstance): Warns on uses of `ICC_Profile.getInstance(String)`, due to [JDK-8191622](https://bugs.openjdk.org/browse/JDK-8191622). - [`MutableGuiceModule`](https://errorprone.info/bugpattern/MutableGuiceModule): Fields in Guice modules should be `final`. - [`NullableOptional`](https://errorprone.info/bugpattern/NullableOptional): Discourages `@Nullable`-annotated `Optional`s. - [`OverridingMethodInconsistentArgumentNamesChecker`](https://errorprone.info/bugpattern/OverridingMethodInconsistentArgumentNamesChecker): Arguments of overriding method are inconsistent with overridden method. Fixed issues: [#3976](https://redirect.github.com/google/error-prone/issues/3976), [#3986](https://redirect.github.com/google/error-prone/issues/3986), [#4001](https://redirect.github.com/google/error-prone/issues/4001), [#4002](https://redirect.github.com/google/error-prone/issues/4002), [#4026](https://redirect.github.com/google/error-prone/issues/4026), [#4027](https://redirect.github.com/google/error-prone/issues/4027) Full Changelog: https://github.com/google/error-prone/compare/v2.20.0...v2.21.0 ### [`v2.20.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.20.0): Error Prone 2.20.0 Changes: - This release is compatible with early-access builds of JDK 21. New Checkers: - [`InlineTrivialConstant`](https://errorprone.info/bugpattern/InlineTrivialConstant) - [`UnnecessaryStringBuilder`](https://errorprone.info/bugpattern/UnnecessaryStringBuilder) - [`BanClassLoader`](https://errorprone.info/bugpattern/BanClassLoader) - [`DereferenceWithNullBranch`](https://errorprone.info/bugpattern/DereferenceWithNullBranch) - [`DoNotUseRuleChain`](https://errorprone.info/bugpattern/DoNotUseRuleChain) - [`LockOnNonEnclosingClassLiteral`](https://errorprone.info/bugpattern/LockOnNonEnclosingClassLiteral) - [`MissingRefasterAnnotation`](https://errorprone.info/bugpattern/MissingRefasterAnnotation) - [`NamedLikeContextualKeyword`](https://errorprone.info/bugpattern/NamedLikeContextualKeyword) - [`NonApiType`](https://errorprone.info/bugpattern/NonApiType) Fixes issues: [#2232](https://redirect.github.com/google/error-prone/issues/2232), [#2243](https://redirect.github.com/google/error-prone/issues/2243), [#2997](https://redirect.github.com/google/error-prone/issues/2997), [#3301](https://redirect.github.com/google/error-prone/issues/3301), [#3843](https://redirect.github.com/google/error-prone/issues/3843), [#3903](https://redirect.github.com/google/error-prone/issues/3903), [#3918](https://redirect.github.com/google/error-prone/issues/3918), [#3923](https://redirect.github.com/google/error-prone/issues/3923), [#3931](https://redirect.github.com/google/error-prone/issues/3931), [#3945](https://redirect.github.com/google/error-prone/issues/3945), [#3946](https://redirect.github.com/google/error-prone/issues/3946) **Full Changelog**: https://github.com/google/error-prone/compare/v2.19.1...v2.20.0 ### [`v2.19.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.19.1): Error Prone 2.19.1 This release fixes a binary compatibility issue when running on JDK 11, see [#3895](https://redirect.github.com/google/error-prone/issues/3895) **Full Changelog**: https://github.com/google/error-prone/compare/v2.19.0...v2.19.1 ### [`v2.19.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.19.0): Error Prone 2.19.0 New Checkers: - [`NotJavadoc`](https://errorprone.info/bugpattern/NotJavadoc) - [`StringCaseLocaleUsage`](https://errorprone.info/bugpattern/StringCaseLocaleUsage) - [`UnnecessaryTestMethodPrefix`](https://errorprone.info/bugpattern/UnnecessaryTestMethodPrefix) Fixes issues: [#956](https://redirect.github.com/google/error-prone/issues/956), [#3504](https://redirect.github.com/google/error-prone/issues/3504), [#3654](https://redirect.github.com/google/error-prone/issues/3654), [#3703](https://redirect.github.com/google/error-prone/issues/3703), [#3731](https://redirect.github.com/google/error-prone/issues/3731), [#3737](https://redirect.github.com/google/error-prone/issues/3737), [#3760](https://redirect.github.com/google/error-prone/issues/3760), [#3779](https://redirect.github.com/google/error-prone/issues/3779), [#3796](https://redirect.github.com/google/error-prone/issues/3796), [#3809](https://redirect.github.com/google/error-prone/issues/3809), [#3813](https://redirect.github.com/google/error-prone/issues/3813) **Full Changelog**: https://github.com/google/error-prone/compare/v2.18.0...v2.19.0 ### [`v2.18.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.18.0): Error Prone 2.18.0 [Compare Source](https://redirect.github.com/google/error-prone/compare/v2.17.0...v2.18.0) New Checkers: - [`InjectOnBugCheckers`](https://errorprone.info/bugpattern/InjectOnBugCheckers) - [`LabelledBreakTarget`](https://errorprone.info/bugpattern/LabelledBreakTarget) - [`UnusedLabel`](https://errorprone.info/bugpattern/UnusedLabel) - [`YodaCondition`](https://errorprone.info/bugpattern/YodaCondition) Fixes issues: [#1650](https://redirect.github.com/google/error-prone/issues/1650), [#2706](https://redirect.github.com/google/error-prone/issues/2706), [#3404](https://redirect.github.com/google/error-prone/issues/3404), [#3493](https://redirect.github.com/google/error-prone/issues/3493), [#3504](https://redirect.github.com/google/error-prone/issues/3504), [#3519](https://redirect.github.com/google/error-prone/issues/3519), [#3579](https://redirect.github.com/google/error-prone/issues/3579), [#3610](https://redirect.github.com/google/error-prone/issues/3610), [#3632](https://redirect.github.com/google/error-prone/issues/3632), [#3638](https://redirect.github.com/google/error-prone/issues/3638), [#3645](https://redirect.github.com/google/error-prone/issues/3645), [#3646](https://redirect.github.com/google/error-prone/issues/3646), [#3652](https://redirect.github.com/google/error-prone/issues/3652), [#3690](https://redirect.github.com/google/error-prone/issues/3690) **Full Changelog**: https://github.com/google/error-prone/compare/v2.17.0...v2.18.0 ### [`v2.17.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.17.0): Error Prone 2.17.0 [Compare Source](https://redirect.github.com/google/error-prone/compare/v2.16...v2.17.0) New Checkers: - [`AvoidObjectArrays`](https://errorprone.info/bugpattern/AvoidObjectArrays) - [`Finalize`](https://errorprone.info/bugpattern/Finalize) - [`IgnoredPureGetter`](https://errorprone.info/bugpattern/IgnoredPureGetter) - [`ImpossibleNullComparison`](https://errorprone.info/bugpattern/ProtoFieldNullComparison) - [`MathAbsoluteNegative`](https://errorprone.info/bugpattern/MathAbsoluteNegative) - [`NewFileSystem`](https://errorprone.info/bugpattern/NewFileSystem) - [`StatementSwitchToExpressionSwitch`](https://errorprone.info/bugpattern/StatementSwitchToExpressionSwitch) - [`UnqualifiedYield`](https://errorprone.info/bugpattern/UnqualifiedYield) Fixed issues: [#2321](https://redirect.github.com/google/error-prone/issues/2321), [#3144](https://redirect.github.com/google/error-prone/issues/3144), [#3297](https://redirect.github.com/google/error-prone/issues/3297), [#3428](https://redirect.github.com/google/error-prone/issues/3428), [#3437](https://redirect.github.com/google/error-prone/issues/3437), [#3462](https://redirect.github.com/google/error-prone/issues/3462), [#3482](https://redirect.github.com/google/error-prone/issues/3482), [#3494](https://redirect.github.com/google/error-prone/issues/3494) **Full Changelog**: https://github.com/google/error-prone/compare/v2.16...v2.17.0 ### [`v2.16`](https://redirect.github.com/google/error-prone/releases/tag/v2.16): Error Prone 2.16.0 [Compare Source](https://redirect.github.com/google/error-prone/compare/v2.15.0...v2.16) New Checkers: - [`ASTHelpersSuggestions`](https://errorprone.info/bugpattern/ASTHelpersSuggestions) - [`CanIgnoreReturnValueSuggester`](https://errorprone.info/bugpattern/CanIgnoreReturnValueSuggester) - [`LenientFormatStringValidation`](https://errorprone.info/bugpattern/LenientFormatStringValidation) - [`UnnecessarilyUsedValue`](https://errorprone.info/bugpattern/UnnecessarilyUsedValue) Fixed issues: [#3092](https://redirect.github.com/google/error-prone/issues/3092), [#3220](https://redirect.github.com/google/error-prone/issues/3220), [#3225](https://redirect.github.com/google/error-prone/issues/3225), [#3267](https://redirect.github.com/google/error-prone/issues/3267), [#3441](https://redirect.github.com/google/error-prone/issues/3441) **Full Changelog**: https://github.com/google/error-prone/compare/v2.15.0...v2.16 ### [`v2.15.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.15.0): Error Prone 2.15.0 New Checkers: - [`BuilderReturnThis`](https://errorprone.info/bugpattern/BuilderReturnThis) - [`CanIgnoreReturnValueSuggester`](https://errorprone.info/bugpattern/CanIgnoreReturnValueSuggester) - [`CannotMockFinalClass`](https://errorprone.info/bugpattern/CannotMockFinalClass) - [`CannotMockFinalMethod`](https://errorprone.info/bugpattern/CannotMockFinalMethod) - [`DirectInvocationOnMock`](https://errorprone.info/bugpattern/DirectInvocationOnMock) - [`ExtendsObject`](https://errorprone.info/bugpattern/ExtendsObject) - [`MockNotUsedInProduction`](https://errorprone.info/bugpattern/MockNotUsedInProduction) - [`NoCanIgnoreReturnValueOnClasses`](https://errorprone.info/bugpattern/NoCanIgnoreReturnValueOnClasses) - [`NullArgumentForNonNullParameter`](https://errorprone.info/bugpattern/NullArgumentForNonNullParameter) - [`SelfAlwaysReturnsThis`](https://errorprone.info/bugpattern/SelfAlwaysReturnsThis) - [`UnsafeWildcard`](https://errorprone.info/bugpattern/UnsafeWildcard) - [`UnusedTypeParameter`](https://errorprone.info/bugpattern/UnusedTypeParameter) Fixed issues: [#1562](https://redirect.github.com/google/error-prone/issues/1562), [#3236](https://redirect.github.com/google/error-prone/issues/3236), [#3245](https://redirect.github.com/google/error-prone/issues/3245), [#3321](https://redirect.github.com/google/error-prone/issues/3321) **Full Changelog**: https://github.com/google/error-prone/compare/v2.14.0...v2.15.0 ### [`v2.14.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.14.0): Error Prone 2.14.0 New checkers: - [`BanJNDI`](https://errorprone.info/bugpattern/BanJNDI) - [`EmptyTopLevelDeclaration`](https://errorprone.info/bugpattern/EmptyTopLevelDeclaration) - [`ErroneousBitwiseExpression`](https://errorprone.info/bugpattern/ErroneousBitwiseExpression) - [`FuzzyEqualsShouldNotBeUsedInEqualsMethod`](https://errorprone.info/bugpattern/FuzzyEqualsShouldNotBeUsedInEqualsMethod) - [`Interruption`](https://errorprone.info/bugpattern/Interruption) - [`NullableOnContainingClass`](https://errorprone.info/bugpattern/NullableOnContainingClass) Fixed issues: [#3110](https://redirect.github.com/google/error-prone/issues/3110), [#3193](https://redirect.github.com/google/error-prone/issues/3193) **Full Changelog**: https://github.com/google/error-prone/compare/v2.13.1...v2.14.0 ### [`v2.13.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.13.1): Error Prone 2.13.1 #### What's Changed - Fix a crash in `UnnecessaryBoxedVariable` in [https://github.com/google/error-prone/pull/3118](https://redirect.github.com/google/error-prone/pull/3118) - Include the unicode character in the diagnostic message in [https://github.com/google/error-prone/pull/3119](https://redirect.github.com/google/error-prone/pull/3119) **Full Changelog**: https://github.com/google/error-prone/compare/v2.13.0...v2.13.1 ### [`v2.13.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.13.0): Error Prone 2.13.0 - Handle all annotations with the simple name `Generated` in `-XepDisableWarningsInGeneratedCode` ([#3094](https://redirect.github.com/google/error-prone/issues/3094)) - Reconcile `BugChecker#isSuppressed` with suppression handling in `ErrorProneScanner` ([#3094](https://redirect.github.com/google/error-prone/issues/3094)) - Fix a bug in `enclosingPackage` ([`8fa64d4`](https://redirect.github.com/google/error-prone/commit/8fa64d48f3a1d8df852ed2546ba02b0e2b7585af)) - Improve performance of fix application ([`186334b`](https://redirect.github.com/google/error-prone/commit/186334bcc45d9c275037cdcce3eb509ae8b7ff50)) - Implicitly treat `@AutoBuilder` setter methods as `@CanIgnoreReturnValue`. - Remove some obsolete checks (`PublicConstructorForAbstractClass`, `HashCodeToString`) [Release Diff: v2.12.1...v2.13.0](https://redirect.github.com/google/error-prone/compare/v2.12.1...v2.13.0). ### [`v2.12.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.12.1): Error Prone 2.12.1 - This release adds an infrastructure optimization to `AppliedFix` source code processing. - [Release Diff: v2.12.0...v2.12.1](https://redirect.github.com/google/error-prone/compare/v2.12.0...v2.12.1). ### [`v2.12.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.12.0): Error Prone 2.12.0 New checks - [`BoxedPrimitiveEquality`](http://errorprone.info/bugpattern/BoxedPrimitiveEquality) - [`DoubleBraceInitialization`](http://errorprone.info/bugpattern/DoubleBraceInitialization) - [`IgnoredPureGetter`](http://errorprone.info/bugpattern/IgnoredPureGetter) - [`LockOnBoxedPrimitive`](http://errorprone.info/bugpattern/LockOnBoxedPrimitive) - [`IncorrectMainMethod`](http://errorprone.info/bugpattern/IncorrectMainMethod) - [`LongDoubleConversion`](http://errorprone.info/bugpattern/LongDoubleConversion) - [`RobolectricShadowDirectlyOn`](http://errorprone.info/bugpattern/RobolectricShadowDirectlyOn) - [`StaticAssignmentOfThrowable`](http://errorprone.info/bugpattern/StaticAssignmentOfThrowable) - [`UnnecessaryLongToIntConversion`](http://errorprone.info/bugpattern/UnnecessaryLongToIntConversion) - [`Varifier`](http://errorprone.info/bugpattern/Varifier) Fixed issues: [#58](https://redirect.github.com/google/error-prone/issues/58), [#65](https://redirect.github.com/google/error-prone/issues/65), [#1327](https://redirect.github.com/google/error-prone/issues/1327), [#1654](https://redirect.github.com/google/error-prone/issues/1654), [#2858](https://redirect.github.com/google/error-prone/issues/2858), [#2867](https://redirect.github.com/google/error-prone/issues/2867), [#2916](https://redirect.github.com/google/error-prone/issues/2916), [#2951](https://redirect.github.com/google/error-prone/issues/2951), [#2954](https://redirect.github.com/google/error-prone/issues/2954), [#3006](https://redirect.github.com/google/error-prone/issues/3006), [#3008](https://redirect.github.com/google/error-prone/issues/3008) **Full Changelog**: https://github.com/google/error-prone/compare/v2.11.0...v2.12.0 ### [`v2.11.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.11.0): Error Prone 2.11.0 Error Prone now requires JDK 11 or newer ([https://github.com/google/error-prone/issues/2730](https://redirect.github.com/google/error-prone/issues/2730)). New checks - [`AutoValueBuilderDefaultsInConstructor`](http://errorprone.info/bugpattern/AutoValueBuilderDefaultsInConstructor) - [`FloggerLogString`](http://errorprone.info/bugpattern/FloggerLogString) - [`UnicodeDirectionalityCharacters`](http://errorprone.info/bugpattern/UnicodeDirectionalityCharacters) - [`UnicodeInCode`](http://errorprone.info/bugpattern/UnicodeInCode) - [`AlreadyChecked`](http://errorprone.info/bugpattern/AlreadyChecked) - [`BugPatternNaming`](http://errorprone.info/bugpattern/BugPatternNaming) - [`MissingImplementsComparable`](http://errorprone.info/bugpattern/MissingImplementsComparable) - [`NegativeCharLiteral`](http://errorprone.info/bugpattern/NegativeCharLiteral) - [`PreferredInterfaceType`](http://errorprone.info/bugpattern/PreferredInterfaceType) - [`StronglyTypeByteString`](http://errorprone.info/bugpattern/StronglyTypeByteString) - [`UsingJsr305CheckReturnValue`](http://errorprone.info/bugpattern/UsingJsr305CheckReturnValue) Fixed issues: [#2641](https://redirect.github.com/google/error-prone/issues/2641), [#2705](https://redirect.github.com/google/error-prone/issues/2705), [#2776](https://redirect.github.com/google/error-prone/issues/2776), [#2798](https://redirect.github.com/google/error-prone/issues/2798), [#2799](https://redirect.github.com/google/error-prone/issues/2799), [#2819](https://redirect.github.com/google/error-prone/issues/2819), [#2820](https://redirect.github.com/google/error-prone/issues/2820), [#2831](https://redirect.github.com/google/error-prone/issues/2831), [#2833](https://redirect.github.com/google/error-prone/issues/2833), [#2834](https://redirect.github.com/google/error-prone/issues/2834), [#2835](https://redirect.github.com/google/error-prone/issues/2835), [#2861](https://redirect.github.com/google/error-prone/issues/2861), [#2873](https://redirect.github.com/google/error-prone/issues/2873), [#2889](https://redirect.github.com/google/error-prone/issues/2889), [#2892](https://redirect.github.com/google/error-prone/issues/2892), [#2901](https://redirect.github.com/google/error-prone/issues/2901) **Full Changelog**: https://github.com/google/error-prone/compare/v2.10.0...v2.11.0 ### [`v2.10.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.10.0): Error Prone 2.10.0 New checks - [`AlwaysThrows`](http://errorprone.info/bugpattern/AlwaysThrows) - [`StackTraceElementGetClass`](http://errorprone.info/bugpattern/StackTraceElementGetClass) - [`BareDotMetacharacter`](http://errorprone.info/bugpattern/BareDotMetacharacter) - [`DistinctVarargsChecker`](http://errorprone.info/bugpattern/DistinctVarargsChecker) - [`MalformedInlineTag`](http://errorprone.info/bugpattern/MalformedInlineTag) - [`MemoizeConstantVisitorStateLookups`](http://errorprone.info/bugpattern/MemoizeConstantVisitorStateLookups) - [`UnicodeEscape`](http://errorprone.info/bugpattern/UnicodeEscape) - [`FieldMissingNullable`](http://errorprone.info/bugpattern/FieldMissingNullable) - [`Java8ApiChecker`](http://errorprone.info/bugpattern/Java8ApiChecker) - [`ParameterMissingNullable`](http://errorprone.info/bugpattern/ParameterMissingNullable) - [`TooManyParameters`](http://errorprone.info/bugpattern/TooManyParameters) - [`TryWithResourcesVariable`](http://errorprone.info/bugpattern/TryWithResourcesVariable) - [`UnnecessaryFinal`](http://errorprone.info/bugpattern/UnnecessaryFinal) - [`VoidMissingNullable`](http://errorprone.info/bugpattern/VoidMissingNullable) Fixed issues: [#2616](https://redirect.github.com/google/error-prone/issues/2616), [#2629](https://redirect.github.com/google/error-prone/issues/2629) **Full Changelog**: https://github.com/google/error-prone/compare/v2.9.0...v2.10.0 ### [`v2.9.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.9.0): Error Prone 2.9.0 Release Error Prone 2.9.0 New checks: - DeprecatedVariable - PublicApiNamedStreamShouldReturnStream Fixes [#2124](https://redirect.github.com/google/error-prone/issues/2124), [#2371](https://redirect.github.com/google/error-prone/issues/2371), [#2393](https://redirect.github.com/google/error-prone/issues/2393), [#2470](https://redirect.github.com/google/error-prone/issues/2470) ### [`v2.8.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.8.1): Error Prone 2.8.1 This release adds a new check ([LoopOverCharArray](https://errorprone.info/bugpattern/LoopOverCharArray)), and a handful of other small improvements (https://github.com/google/error-prone/compare/v2.8.0...v2.8.1). ### [`v2.8.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.8.0): Error Prone 2.8.0 New Checks: - [JUnit4TestsNotRunWithinEnclosed](https://errorprone.info/bugpattern/JUnit4TestsNotRunWithinEnclosed) - [OptionalOfRedundantMethod](https://errorprone.info/bugpattern/OptionalOfRedundantMethod) - [UnnecessaryAssignment](https://errorprone.info/bugpattern/UnnecessaryAssignment) - [UnrecognisedJavadocTag](https://errorprone.info/bugpattern/UnrecognisedJavadocTag) - [AnnotationMirrorToString](https://errorprone.info/bugpattern/AnnotationMirrorToString) - [AnnotationValueToString](https://errorprone.info/bugpattern/AnnotationValueToString) - [EqualsMissingNullable](https://errorprone.info/bugpattern/EqualsMissingNullable) - [ReturnMissingNullable](https://errorprone.info/bugpattern/ReturnMissingNullable) Fixes [#1652](https://redirect.github.com/google/error-prone/issues/1652), [#2122](https://redirect.github.com/google/error-prone/issues/2122), [#2122](https://redirect.github.com/google/error-prone/issues/2122), [#2366](https://redirect.github.com/google/error-prone/issues/2366), [#2404](https://redirect.github.com/google/error-prone/issues/2404), [#2411](https://redirect.github.com/google/error-prone/issues/2411) ### [`v2.7.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.7.1): Error Prone 2.7.1 Everything in [Error Prone 2.7.0](https://redirect.github.com/google/error-prone/releases/tag/v2.7.0), plus an [additional fix for JDK 17](https://redirect.github.com/google/error-prone/commit/ff07935205757a2eb8b6ef52af1751948752b6ab). ### [`v2.7.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.7.0): Error Prone 2.7.0 Changes - Initial support for running on JDK 17 EA builds. Supports for Java 17 languages features is incomplete; [bug reports](https://redirect.github.com/google/error-prone/issues) for issues with Java 17 are welcome. - `@InlineMe` is a deprecation mechanism that allows automated tools to cleanup existing callers: http://errorprone.info/docs/inlineme New checks: - [EqualsNull](http://errorprone.info/bugpattern/EqualsNull) - [MissingBraces](http://errorprone.info/bugpattern/MissingBraces) - [NullablePrimitiveArray](http://errorprone.info/bugpattern/NullablePrimitiveArray) - [OptionalMapUnusedValue](http://errorprone.info/bugpattern/OptionalMapUnusedValue) - [TestParametersNotInitialized](http://errorprone.info/bugpattern/TestParametersNotInitialized) Closed issues: [#2257](https://redirect.github.com/google/error-prone/issues/2257), [#2260](https://redirect.github.com/google/error-prone/issues/2260), [#2282](https://redirect.github.com/google/error-prone/issues/2282), [#2301](https://redirect.github.com/google/error-prone/issues/2301), [#2322](https://redirect.github.com/google/error-prone/issues/2322), [#2323](https://redirect.github.com/google/error-prone/issues/2323), [#2324](https://redirect.github.com/google/error-prone/issues/2324) ### [`v2.6.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.6.0): Error Prone 2.6.0 Checkers Added: - [CharacterGetNumericValue](http://errorprone.info/bugpattern/CharacterGetNumericValue) - [ErroneousThreadPoolConstructorChecker](http://errorprone.info/bugpattern/ErroneousThreadPoolConstructorChecker) - [FloggerArgumentToString](http://errorprone.info/bugpattern/FloggerArgumentToString) - [FloggerStringConcatenation](http://errorprone.info/bugpattern/FloggerStringConcatenation) - [ProtoBuilderReturnValueIgnored](http://errorprone.info/bugpattern/ProtoBuilderReturnValueIgnored) - [RethrowReflectiveOperationExceptionAsLinkageError](http://errorprone.info/bugpattern/RethrowReflectiveOperationExceptionAsLinkageError) - [SystemOut](http://errorprone.info/bugpattern/SystemOut) - [UnnecessaryAnonymousClass](http://errorprone.info/bugpattern/UnnecessaryAnonymousClass) Issues Closed: - RFE: configurable DoNotCall/RestrictedApi/JdkObsolete/DefaultCharset/JavaTimeDefaultTimeZone check ([#1211](https://redirect.github.com/google/error-prone/issues/1211)) - Add SystemOut checker ([#1534](https://redirect.github.com/google/error-prone/issues/1534)) - WellKnownMutability: add java.awt.Color ([#1682](https://redirect.github.com/google/error-prone/issues/1682)) - IdentityHashMapUsage warnings differ from its documentation ([#2095](https://redirect.github.com/google/error-prone/issues/2095)) - UnusedMethod no longer works ([#2215](https://redirect.github.com/google/error-prone/issues/2215)) - Document naming convention for UnusedMethod ([#2223](https://redirect.github.com/google/error-prone/issues/2223)) ### [`v2.5.1`](https://redirect.github.com/google/error-prone/releases/tag/v2.5.1): Error Prone 2.5.1 Changes NoSuchMethodError: 'com.sun.tools.javac.util.List com.sun.tools.javac.code.Symbol$TypeSymbol.getEnclosedElements - Fixed `NoSuchMethodError` crash in `HidingField` ([#2092](https://redirect.github.com/google/error-prone/issues/2092)) - Fixed `NoSuchElementException` crash in `RestrictedApiChecker` ([#2099](https://redirect.github.com/google/error-prone/issues/2099)) - False positive in `DifferentNameButSame` ([#2094](https://redirect.github.com/google/error-prone/issues/2094)) - False positive in `UnnecessaryOptionalGet` ([#2101](https://redirect.github.com/google/error-prone/issues/2101)) - False positive in `UnnecessaryMethodReference` ([#2102](https://redirect.github.com/google/error-prone/issues/2102)) - Fixed a regression in JDK 16-EA support ([#2105](https://redirect.github.com/google/error-prone/issues/2105)) ### [`v2.5.0`](https://redirect.github.com/google/error-prone/releases/tag/v2.5.0): Error Prone 2.5.0 New checks: - [BanSerializableRead](http://errorprone.info/bugpattern/BanSerializableRead) - [CatchingUnchecked](http://errorprone.info/bugpattern/CatchingUnchecked) - [ComputeIfAbsentAmbiguousReference](http://errorprone.info/bugpattern/ComputeIfAbsentAmbiguousReference) - [DangerousLiteralNull](http://errorprone.info/bugpattern/DangerousLiteralNull) - [DateChecker](http://errorprone.info/bugpattern/DateChecker) - [DifferentNameButSame](http://errorprone.info/bugpattern/DifferentNameButSame) - [DoNotCallSuggester](http://errorprone.info/bugpattern/DoNotCallSuggester) - [DoNotClaimAnnotations](http://errorprone.info/bugpattern/DoNotClaimAnnotations) - [DoNotMockAutoValue](http://errorprone.info/bugpattern/DoNotMockAutoValue) - [FloggerFormatString](http://errorprone.info/bugpattern/FloggerFormatString) - [FloggerLogVarargs](http://errorprone.info/bugpattern/FloggerLogVarargs) - [FloggerLogWithCause](http://errorprone.info/bugpattern/FloggerLogWithCause) - [FloggerMessageFormat](http://errorprone.info/bugpattern/FloggerMessageFormat) - [FloggerPassedAround](http://errorprone.info/bugpattern/FloggerPassedAround) - [FloggerRedundantIsEnabled](http://errorprone.info/bugpattern/FloggerRedundantIsEnabled) - [FloggerRequiredModifiers](http://errorprone.info/bugpattern/FloggerRequiredModifiers) - [FloggerSplitLogStatement](http://errorprone.info/bugpattern/FloggerSplitLogStatement) - [FloggerWithCause](http://errorprone.info/bugpattern/FloggerWithCause) - [FloggerWithoutCause](http://errorprone.info/bugpattern/FloggerWithoutCause) - [HashCodeToString](http://errorprone.info/bugpattern/HashCodeToString) - [IdentityHashMapUsage](http://errorprone.info/bugpattern/IdentityHashMapUsage) - [ImmutableMemberCollection](http://errorprone.info/bugpattern/ImmutableMemberCollection) - [ImmutableSetForContains](http://errorprone.info/bugpattern/ImmutableSetForContains) - [InitializeInline](http://errorprone.info/bugpattern/InitializeInline) - [InvalidThrowsLink](http://errorprone.info/bugpattern/InvalidThrowsLink) - [IsInstanceIncompatibleType](http://errorprone.info/bugpattern/IsInstanceIncompatibleType) - [JavaUtilDate](http://errorprone.info/bugpattern/JavaUtilDate) - [JodaConstructors](http://errorprone.info/bugpattern/JodaConstructors) - [JodaDateTimeConstants](http://errorprone.info/bugpattern/JodaDateTimeConstants) - [LongFloatConversion](http://errorprone.info/bugpattern/LongFloatConversion) - [MemberName](http://errorprone.info/bugpattern/MemberName) - [MisplacedScopeAnnotations](http://errorprone.info/bugpattern/MisplacedScopeAnnotations) - [ObjectEqualsForPrimitives](http://errorprone.info/bugpattern/ObjectEqualsForPrimitives) - [OptionalMapUnusedValue](http://errorprone.info/bugpattern/OptionalMapUnusedValue) - [ReturnsNullCollection](http://errorprone.info/bugpattern/ReturnsNullCollection) - [StaticMockMember](http://errorprone.info/bugpattern/StaticMockMember) - [StreamToIterable](http://errorprone.info/bugpattern/StreamToIterable) - [SymbolToString](http://errorprone.info/bugpattern/SymbolToString) - [TypeToString](http://errorprone.info/bugpattern/TypeToString) - [UnnecessarilyVisible](http://errorprone.info/bugpattern/UnnecessarilyVisible) - [UnnecessaryMethodReference](http://errorprone.info/bugpattern/UnnecessaryMethodReference) - [UnnecessaryOptionalGet](http://errorprone.info/bugpattern/UnnecessaryOptionalGet) - [UnsafeLocaleUsage](http://errorprone.info/bugpattern/UnsafeLocaleUsage) - [UseEnumSwitch](http://errorprone.info/bugpattern/UseEnumSwitch) - [UseTimeInScope](http://errorprone.info/bugpattern/UseTimeInScope) - [WrongOneof](http://errorprone.info/bugpattern/WrongOneof) - [ZoneIdOfZ](http://errorprone.info/bugpattern/ZoneIdOfZ) Fixed issues: [#1044](https://redirect.github.com/google/error-prone/issues/1044) [#1177](https://redirect.github.com/google/error-prone/issues/1177) [#1275](https://redirect.github.com/google/error-prone/issues/1275) [#1322](https://redirect.github.com/google/error-prone/issues/1322) [#1326](https://redirect.github.com/google/error-prone/issues/1326) [#1503](https://redirect.github.com/google/error-prone/issues/1503) [#1529](https://redirect.github.com/google/error-prone/issues/1529) [#1563](https://redirect.github.com/google/error-prone/issues/1563) [#1645](https://redirect.github.com/google/error-prone/issues/1645) [#1650](https://redirect.github.com/google/error-prone/issues/1650) [#1652](https://redirect.github.com/google/error-prone/issues/1652) [#1653](https://redirect.github.com/google/error-prone/issues/1653) [#1655](https://redirect.github.com/google/error-prone/issues/1655) [#1665](https://redirect.github.com/google/error-prone/issues/1665) [#1670](https://redirect.github.com/google/error-prone/issues/1670) [#1672](https://redirect.github.com/google/error-prone/issues/1672) [#1694](https://redirect.github.com/google/error-prone/issues/1694) [#1699](https://redirect.github.com/google/error-prone/issues/1699) [#1705](https://redirect.github.com/google/error-prone/issues/1705) [#1767](https://redirect.github.com/google/error-prone/issues/1767) [#1788](https://redirect.github.com/google/error-prone/issues/1788) [#1809](https://redirect.github.com/google/error-prone/issues/1809) [#1849](https://redirect.github.com/google/error-prone/issues/1849) [#1873](https://redirect.github.com/google/error-prone/issues/1873) [#1916](https://redirect.github.com/google/error-prone/issues/1916) [#1981](https://redirect.github.com/google/error-prone/issues/1981) [#1982](https://redirect.github.com/google/error-prone/issues/1982) [#1986](https://redirect.github.com/google/error-prone/issues/1986) [#1987](https://redirect.github.com/google/error-prone/issues/1987) [#2009](https://redirect.github.com/google/error-prone/issues/2009) [#2026](https://redirect.github.com/google/error-prone/issues/2026) [#2029](https://redirect.github.com/google/error-prone/issues/2029) [#2059](https://redirect.github.com/google/error-prone/issues/2059) [#2064](https://redirect.github.com/google/error-prone/issues/2064)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.