Releases: typetools/checker-framework
Checker Framework 3.22.0
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
Version 3.21.4 (April 1, 2022)
Closed issues:
#5086.
Checker Framework 3.21.3
Checker Framework 3.21.2
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.
Checker Framework 3.21.1
Checker Framework 3.21.0
Version 3.21.0 (December 17, 2021)
User-visible changes:
The Checker Framework now more precisely computes the type of a switch expression.
Implementation details:
The dataflow framework now analyzes switch expressions and switch statements that use the new ->
case syntax. To do so, a new node, SwitchExpressionNode, was added.
Checker Framework 3.20.0
Version 3.20.0 (December 6, 2021)
User-visible changes:
The Checker Framework now runs on code that contains switch expressions and switch statements that use the new ->
case syntax, but treats them conservatively. A future version will improve precision.
Implementation details:
The dataflow framework can be run on code that contains switch expressions and switch statements that use the new ->
case syntax, but it does not yet analyze the cases in a switch expression and it treats ->
as :
. A future version will do so.
Removed methods and classes that have been deprecated for more than one year:
- Old way of constructing qualifier hierarchies
@SuppressWarningsKeys
RegularBlock.getContents()
TestUtilities.testBooleanProperty()
CFAbstractTransfer.getValueWithSameAnnotations()
Checker Framework 3.19.0
Version 3.19.0 (November 1, 2021)
User-visible changes:
The Checker Framework runs under JDK 17 -- that is, it runs on a version 17 JVM. The Checker Framework also continues to run under JDK 8 and JDK 11. New command-line argument -ApermitUnsupportedJdkVersion
lets you run the Checker Framework on any JDK (version 8 or greater) without a warning about an unsupported JDK version. The Checker Framework does not yet run on code that contains switch expressions.
Implementation details:
Removed org.checkerframework.framework.type.VisitorState
Removed AnnotatedTypeFactory#postTypeVarSubstitution
Deprecated methods in AnnotatedTypeFactory:
getCurrentClassTree
getCurrentMethodReceiver