Skip to content

Releases: typetools/checker-framework

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.

Checker Framework 3.21.4

01 Apr 17:48
Compare
Choose a tag to compare

Version 3.21.4 (April 1, 2022)

Closed issues:
#5086.

Checker Framework 3.21.3

01 Mar 20:43
Compare
Choose a tag to compare

Version 3.21.3 (March 1, 2022)

Closed issues:
#2847, #4965, #5039, #5042, #5047.

Checker Framework 3.21.2

01 Feb 21:56
Compare
Choose a tag to compare

Version 3.21.2 (February 1, 2022)

User-visible changes:

The wpi.sh script supports non-standard names for build system compile targets via the new -c command-line option.

The Checker Framework now more precisely computes and checks the type of the pattern variable in a pattern match instanceof.

Implementation details:

Deprecated CFGLambda.getMethod{Name} in favor of getEnclosingMethod{Name}.

Closed issues:
#4615, #4993, #5006, #5007, #5008, #5013, #5016, #5021.