We have released a new version of the Checker Framework.
The Checker Framework lets you create and/or run pluggable type checkers, in order to detect and prevent bugs in your code.
You can find documentation and download links at:
http://CheckerFramework.org/Changes for Checker Framework version 3.26.0:
**User-visible changes:**
The Checker Framework runs under JDK 18 -- that is, it runs on a version 18 JVM. (It worked before, but gave a warning that it was not tested.)
Annotations are available for some new JDK 17 APIs (some of those introduced since JDK 11).
Added `-AnoWarnMemoryConstraints` to change the "Memory constraints are impeding performance; please increase max heap size" message from a warning to a note.
'unneeded.suppression' warnings can now themeselves be suppressed.
**Implementation details:**
Deprecated `TreeUtils.constructor()` in favor of `TreeUtils.elementFromUse()`.
Added method `isSideEffectFree()` to the `AnnotationProvider` interface.
Deprecated `CFAbstractStore.isSideEffectFree()` in favor of new method `AnnotationProvider.isSideEffectFree()`. Note the different contracts of `PurityUtils.isSideEffectFree()` and `AnnotationProvider.isSideEffectFree()`.
Use `TreeUtils.elementFromDeclaration` and `TreeUtils.elementFromUse` in preference to `TreeUtils.elementFromTree`, when possible.
For code formatting, use `./gradlew spotlessCheck` and `./gradlew spotlessApply`. The `checkFormat` and `reformat` Gradle tasks have been removed.
Removed variable `BaseTypeVisitor.inferPurity`.
**Closed issues:**
#5081, #5159, #5245, #5302, #5319, #5323