Skip to content

Releases: typetools/checker-framework

Checker Framework 3.30.0

02 Feb 21:20
Compare
Choose a tag to compare

Version 3.30.0 (February 2, 2023)

Implementation details:

getQualifierKind() throws an exception rather than returning null.

Renamed gradle task copyJarsToDist to assembleForJavac.

Closed issues:
#5402, #5486, #5489, #5519, #5524, #5526.

Checker Framework 3.29.0

05 Jan 19:10
Compare
Choose a tag to compare

Version 3.29.0 (January 5, 2023)

User-visible changes:

Dropped support for -ApermitUnsupportedJdkVersion command-line argument. You can now run the Checker Framework under any JDK version, without a warning.

Pass -Astubs=permit-nullness-assertion-exception.astub to not be warned about null pointer exceptions within nullness assertion methods like Objects.requireNonNull.

Pass -Astubs=sometimes-nullable.astub to unsoundly permit passing null to calls if null is sometimes but not always permitted.

Closed issues:

#5412, #5431, #5435, #5438, #5447, #5450, #5453, #5471, #5472, #5487.

Checker Framework 3.28.0

01 Dec 20:30
Compare
Choose a tag to compare

Version 3.28.0 (December 1, 2022)

User-visible changes:

The Checker Framework runs under JDK 19 -- that is, it runs on a version 19 JVM.

Implementation details:

Renamed TryFinallyScopeCell to LabelCell.

Renamed TreeUtils.isEnumSuper to isEnumSuperCall.

Closed issues:

#5390, #5399, #5390.

Checker Framework 3.27.0

01 Nov 19:41
Compare
Choose a tag to compare

Version 3.27.0 (November 1, 2022)

User-visible changes:

The Constant Value Checker supports new annotation @DoesNotMatchRegex.

Closed issues:

#5238, #5360, #5362, #5387.

Checker Framework 3.26.0

03 Oct 21:39
Compare
Choose a tag to compare

Version 3.26.0 (October 3, 2022)

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.

Checker Framework 3.25.0

02 Sep 07:53
Compare
Choose a tag to compare

Version 3.25.0 (September 1, 2022)

User-visible changes:

Make mustcall.not.inheritable a warning rather than an error

The Property File Checker, Internationalization Checker, and Compiler Message Checker use File.pathSeparator to separate property file paths in -Apropfiles, rather than ':'.

Added DoNothingChecker that does nothing.

Closed issues:

#5216, #5240, #5256, #5273.

Checker Framework 3.24.0

03 Aug 19:22
Compare
Choose a tag to compare

Version 3.24.0 (August 3, 2022)

User-visible changes:

Performance improvements.

Minor bug fixes and enhancements.

Implementation details:

Prefer SystemUtil.jreVersion to SystemUtil.getJreVersion().

Closed issues:

#5200, #5216.

Checker Framework 3.23.0

11 Jul 23:44
Compare
Choose a tag to compare

Version 3.23.0 (July 11, 2022)

User-visible changes:

By default, command-line argument -AstubWarnIfNotFound is treated as true for stub files provided on the command line and false for built-in stub files. Use -AstubWarnIfNotFound to enable it for all stub files, and use new -AstubNoWarnIfNotFound to disable it for all stub files.

New command-line argument -ApermitStaticOwning suppresses Resource Leak Checker warnings related to static owning fields.

New command-line argument -ApermitInitializationLeak suppresses Resource Leak Checker warnings related to field initialization.

Closed issues:

#4855, #5151, #5166, #5172, #5175, #5181, #5189.

Checker Framework 3.22.1

01 Jun 17:17
Compare
Choose a tag to compare

Version 3.22.1 (June 1, 2022)

Closed issues:
#58, #5136, #5138, #5142, #5143.

Checker Framework 3.22.0

02 May 18:19
Compare
Choose a tag to compare

Version 3.22.0 (May 2, 2022)

User-visible changes:

The Signedness Checker now checks calls to equals() as well as to ==. When two formal parameter types are annotated with @PolySigned, the two arguments at a call site must have the same signedness type annotation. (This differs from the standard rule for polymorphic qualifiers.)

Implementation details:

When passed a NewClassTree that creates an anonymous constructor, AnnotatedTypeFactory#constructorFromUse now returns the type of the anonymous constructor rather than the type of the super constructor invoked in the anonymous classes constructor. If the super constructor has explicit annotations, they are copied to the anonymous classes constructor.

Closed issues:
#5113.