Releases: eisop/checker-framework
Checker Framework 3.21.4-eisop1
Checker Framework 3.21.3-eisop1
Version 3.21.3-eisop1 (March 23, 2022)
User-visible changes:
If you supply the new -AjspecifyNullMarkedAlias=false
command-line
option, then the Nullness Checker will not treat
org.jspecify.nullness.NullMarked
as a defaulting annotation.
By default the NullMarked
annotation continues to be recognized.
Implementation details:
Changed AnnotatedTypeFactory.initializeAtm
from public to package
private visibility. Nobody outside the package should call this method.
Changed CFAbstractTransfer.insertIntoStores
from public to protected
visibility. It is only meant as a utility method for use within a
transfer function.
Deprecated class StringConcatenateAssignmentNode
and its usages.
String concatenate assignments are now desugared to an assignment and
a concatenation node instead.
This avoids error prone duplication of logic.
Closed issues:
typetools#5075.
Checker Framework 3.21.2-eisop1
Version 3.21.2-eisop1 (February 2, 2022)
User-visible changes:
Improved support for NullMarked
default annotation.
DefaultQualifier
supports the new applyToSubpackages
annotation attribute
to decide whether a default should also apply to subpackages. To preserve the
current behavior the default is true
.
Implementation details:
Moved files AnnotationFormatter.java and DefaultAnnotationFormatter.java from
javacutil/src/main/java/org/checkerframework/javacutil/ to
framework/src/main/java/org/checkerframework/framework/util/.
typetools PR 3821 incorrectly moved these files, without adapting their
packages, leading to framework classes in javacutil.
The AnnotationFormatter depends on the InvisibleQualifier framework
annotation, so should be in that project.
Added additional toStringSimple methods to AnnotationUtils to format
AnnotationMirrors without depending on the framework project.
AnnotatedTypeFactory: removed field artificialTreeToEnclosingElementMap
and
final methods getEnclosingElementForArtificialTree
and
setEnclosingElementForArtificialTree
. The new final method
setPathForArtificialTree
is used by CFCFGBuilder
to update the mapping. Now
all trees, including artificial trees, have a correct path and enclosing
element.
Dataflow Framework: new ExpressionStatementNode
marks an expression that is
used as a statement.
To correctly handle ternary expressions, support synthetic AssignmentNodes that
do not merge stores. These synthetic assignments are used for the assignments
to the synthetic variables in a ternary expression.
(typetools PR typetools#5000 48f2652 added synthetic
variables for ternary expressions to the CFG. This broke how the Nullness
Checker handles ternary expressions, leading to false positives.)
Closed issues:
typetools#3281.
Checker Framework 3.19.0-eisop1
Version 3.19.0-eisop-1 (November 4, 2021)
User-visible changes:
Avoid shading of string literals which broke some annotation aliasing.
Add more nullness annotation aliases.
Implementation details:
Remove the unsound "BOTH-TO-THEN", "BOTH-TO-ELSE" logic from the Dataflow
Framework.
Small improvements and code-style clean-ups in the Dataflow Framework and
in the core Checker Framework "framework" package.
Closed issues:
#121, typetools#4923.
Checker Framework 3.18.1-eisop1
Version 3.18.1-eisop-1 (October 7, 2021)
User-visible changes:
Add more aliases for nullness annotations; fix manual formatting (#105).
Checker Framework 3.18.0-eisop1
Version 3.18.0-eisop1 (September 23, 2021)
The new -AnoJreVersionCheck
command-line argument can be used to not get a warning about running the Checker Framework on an unsupported JRE version.
JAR files are minimized to only include required classes.
Temporarily remove support for "Whole Program Inference" - the -Ainfer option and related scripts.
Implementation details:
Changes to AnnotatedTypeMirror
:
- Rename
clearPrimaryAnnotations()
back toclearAnnotations()
to be consistent with other method names. Undoes change in typetools 3.16.0. - Remove
getAnnotation()
method.getAnnotationInHierarchy
should be used instead. Undoes change in typetools typetools#3691.