Skip to content

Releases: typetools/checker-framework

Checker Framework 3.48.2

04 Nov 16:40
Compare
Choose a tag to compare

Version 3.48.2 (November 1, 2024)

Closed issues:

#6371, #6867.

Checker Framework 3.48.1

11 Oct 20:41
Compare
Choose a tag to compare

Version 3.48.1 (October 11, 2024)

User-visible changes:

The Returns Receiver sub-checker is now disabled by default when running the Resource Leak Checker, as usually it is not needed and it adds overhead. To enable it, use the new -AenableReturnsReceiverForRlc command-line argument.

Closed issues:

#6434, #6810, #6839, #6842, #6856.

Checker Framework 3.48.0

02 Oct 17:50
Compare
Choose a tag to compare

Version 3.48.0 (October 2, 2024)

User-visible changes:

The new SqlQuotesChecker prevents errors in quoting in SQL queries. It prevents injection attacks that exploit quoting errors.

Aggregate Checkers now interleave error messages so that all errors about a line of code appear together.

Closed issues:

#3568, #6725, #6753, #6769, #6770, #6780, #6785, #6795, #6804, #6811, #6825.

Checker Framework 3.47.0

04 Sep 17:09
Compare
Choose a tag to compare

Version 3.47.0 (September 3, 2024)

User-visible changes:

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

The Optional Checker no longer supports the @OptionalBottom annotation.

Implementation details:

Removed annotations:

  • @OptionalBottom

Closed issues:

#6510, #6704, #6743, #6749, #6760, #6761.

Checker Framework 3.46.0

01 Aug 18:47
Compare
Choose a tag to compare

Version 3.46.0 (August 1, 2024)

User-visible changes:

Renamed @EnsuresCalledMethodsVarArgsto @EnsuresCalledMethodsVarargs.

Closed issues:

#4923, #6420, #6469, #6652, #6664.

Checker Framework 3.45.0

01 Jul 20:41
Compare
Choose a tag to compare

Version 3.45.0 (July 1, 2024)

Implementation details:

Added a Tree argument to AnnotatedTypes.adaptParameters()

Deprecated methods:

  • TreeUtils.isVarArgs() => isVarargsCall()
  • TreeUtils.isVarArgMethodCall() => isVarargsCall()

Closed issues:

#152, #5575, #6630, #6641, #6648, #6676.

Checker Framework 3.44.0

04 Jun 01:50
Compare
Choose a tag to compare

Version 3.44.0 (June 3, 2024)

Implementation details:

Removed methods:

  • AbstractAnalysis.readFromStore(): use Map.get()

Renamed methods:

  • CFAbstractStore.methodValues() => methodCallExpressions()
  • AbstractCFGVisualizer.format() => escapeString()

Renamed fields:

  • AnalysisResult.stores => inputs

Deprecated methods:

  • AbstractAnalysis.getContainingMethod() => getEnclosingMethod()
  • AbstractAnalysis.getContainingClass() => getEnclosingMethod()
  • ControlFlowGraph.getContainingMethod() => getEnclosingMethod()
  • ControlFlowGraph.getContainingClass() => getEnclosingClass()
  • JavaExpression.isUnassignableByOtherCode() => isAssignableByOtherCode()
  • JavaExpression.isUnmodifiableByOtherCode() => isModifiableByOtherCode()

BaseTypeVisitor#visitMethod(MethodTree, Void) is now final.
Subclasses should override BaseTypeVisitor#processMethodTree(MethodTree).

Closed issues:

#802, #2676, #2780, #2926, #3378, #3612, #3764, #4007, #4964, #5070, #5176, #5237, #5541, #6046, #6382, #6388, #6566, #6568, #6570, #6576, #6577, #6631, #6635, #6636, #6644.

Checker Framework 3.43.0

01 May 20:01
Compare
Choose a tag to compare

Version 3.43.0 (May 1, 2024)

User-visible changes:

Method, constructor, lambda, and method reference type inference has been greatly improved. The -AconservativeUninferredTypeArguments option is no longer necessary and has been removed.

Renamed command-line arguments:

  • -AskipDirs has been renamed to -AskipFiles.
    -AskipDirs will continue to work for the time being.

New command-line arguments:

  • -AonlyFiles complements -AskipFiles

A specialized inference algorithm for the Resource Leak Checker runs automatically as part of whole-program inference.

Implementation details:

Deprecated ObjectCreationNode#getConstructor in favor of new ObjectCreationNode#getTypeToInstantiate().

Renamed AbstractCFGVisualizer.visualizeBlockHelper() to visualizeBlockWithSeparator().

Moved methods from TreeUtils to subclasses of TreeUtilsAfterJava11:

  • isConstantCaseLabelTree
  • isDefaultCaseLabelTree
  • isPatternCaseLabelTree

Renamed BaseTypeVisitor.checkForPolymorphicQualifiers() to warnInvalidPolymorphicQualifier().

Closed issues:

#979, #4559, #4593, #5058, #5734, #5781, #6071, #6093, #6239, #6297, #6317, #6322, #6346, #6373, #6376, #6378, #6379, #6380, #6389, #6393, #6396, #6402, #6406, #6407, #6417, #6421, #6430, #6433, #6438, #6442, #6473, #6480, #6507, #6531, #6535.

Checker Framework 3.42.0

15 Dec 23:37
Compare
Choose a tag to compare

Version 3.42.0 (December 15, 2023)

User-visible changes:

Method annotation @AssertMethod indicates that a method checks a value and possibly throws an assertion. Using it can make flow-sensitive type refinement more effective.

In org.checkerframework.common.util.debug, renamed EmptyProcessor to DoNothingProcessor.
Removed org.checkerframework.common.util.report.DoNothingChecker.
Moved ReportChecker from org.checkerframework.common.util.report to org.checkerframework.common.util.count.report.

Checker Framework 3.41.0

04 Dec 17:52
Compare
Choose a tag to compare

Version 3.41.0 (December 4, 2023)

User-visible changes:

New command-line options:
-AassumePureGetters Unsoundly assume that every getter method is pure

Implementation details:

Added method isDeterministic() to the AnnotationProvider interface.

CFAbstractValue#leastUpperBound and CFAbstractValue#widenUpperBound are now final. Subclasses should override method CFAbstractValue#upperBound(V, TypeMirror, boolean) instead.

Closed issues:

#1497, #3345, #6037, #6204, #6276, #6282, #6290, #6296, #6319, #6327.