Skip to content

Releases: typetools/checker-framework

Checker Framework 3.54.0

02 Mar 21:34

Choose a tag to compare

Version 3.54.0 (2026-03-02)

User-visible changes

Command-line arguments:

  • Added -AinferOutputDirectory.
  • Removed long-deprecated -Alint=forbidnonnullarraycomponents.

New command-line argument -Aonelinemsg puts error messages on a single line. This is useful when using a tool that only shows the first line of the error.

The command-line argument -Anomsgtext surrounds the error key with brackets instead of parenthesis. This matches Java error messages.

Implementation details

In AnnotatedTypeFactory, canonicalAnnotation() returns a non-null value.

In AnnotationClassLoader:

  • Renamed hasWellDefinedTargetMetaAnnotation() to isTypeQualifierAnnotation(). The method now returns true for annotations bearing @InvisibleQualifier or @SubtypeOf, in addition to the existing @Target(TYPE_USE) check.

In TestDiagnostic:

  • Renamed field message to key.
  • Added new nullable field message for the full message without the key.

Removed classes and methods that have been deprecated for more than two years.

Closed issues

#6874, #7471, #7475, #7486.

Checker Framework 3.53.1

02 Feb 21:50

Choose a tag to compare

Version 3.53.1 (2026-02-02)

Closed issues

#4858, #6141, #6620, #7360, #7388.

Checker Framework 3.53.0

06 Jan 20:06

Choose a tag to compare

Version 3.53.0 (2026-01-06)

Implementation details

In AbstractAnalysis, added getStoreBefore(Tree), getStoreBefore(Node),
getStoreAfter(Tree), and getStoreAfter(Node).

In GenericAnnotatedTypeFactory, removed getStoreBefore(Set<Node>) and getStoreAfter(Set<Node>).

Closed issues

#2358.

Checker Framework 3.52.1

02 Dec 20:49

Choose a tag to compare

Version 3.52.1 (2025-12-02)

User-visible changes:

Added Opt.ifPresentOrElse() method.

Closed issues:
#7243, #7398.

Checker Framework 3.52.0

04 Nov 17:57

Choose a tag to compare

Version 3.52.0 (2025-11-04)

Implementation details:

In CFAbstractAnalysis, renamed defaultCreateAbstractValue to getCfValue

In GenericAnnotatedTypeFactory:

  • renamed performFlowAnalysis to performFlowAnalysisForClass
  • renamed checkAndPerformFlowAnalysis to performFlowAnalysisForClassOnce

Closed issues:

#6629, #7341, #7346.

Checker Framework 3.51.1

01 Oct 19:40

Choose a tag to compare

Version 3.51.1 (2025-10-01)

Closed issues:

#6623, #7250.

Checker Framework 3.51.0

10 Sep 17:41

Choose a tag to compare

Version 3.51.0 (2025-09-10)

User-visible changes:

If you supply --add-exports flags when you run the Checker Framework, you need to add:
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED.

Implementation details:

In CFGVisualizeOptions:

  • renamed isPDF() to isPdfOutput()
  • renamed isString() to isStringOutput()

Dataflow Framework:

  • In playground package, renamed *Playground.java to *Pdf.java

Closed issues:

#7229, #7241, #7248, #7258.

Checker Framework 3.50.0

29 Aug 16:51

Choose a tag to compare

Version 3.50.0 (2025-08-28)

User-visible changes:

If you supply --add-exports flags when you run the Checker Framework, you need to add:
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED.

Implementation details:

Moved the Annotation File Utilities code into the Checker Framework repository as a subproject.

Checker Framework 3.49.5

30 Jun 16:26

Choose a tag to compare

Version 3.49.5 (June 30, 2025)

User-visible changes:

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

Closed issues:

#7093.

Checker Framework 3.49.4

02 Jun 19:42

Choose a tag to compare

Version 3.49.4 (June 2, 2025)

Closed issues:

#6740, #7013, #7038, #7070, #7082.