Releases: typetools/checker-framework
Checker Framework 2.8.0
Version 2.8.0, April 3, 2019
Support androidx.annotation.RecentlyNonNull
and RecentlyNullable
(as of 2.6.0, but not previously documented).
The following qualifiers are now repeatable: @DefaultQualifier
@EnsuresQualifierIf
@EnsuresQualifier
@RequiresQualifier
. Therefore, users generally do not need to write the following wrapper annotations: @DefaultQualifiers
@EnsuresQualifiersIf
@EnsuresQualifiers
@RequiresQualifiers
.
New command-line option -ArequirePrefixInWarningSuppressions
makes @SuppressWarnings
recognize warning keys of the form "checkername:key.about.problem" but ignore warning keys of the form "key.about.problem" without the checker name as a prefix.
New CONSTRUCTOR_RESULT enum constant in TypeUseLocation makes it possible to set default annotations for constructor results.
Clarified the semantics of annotations on class and constructor declarations. See Section 25.5 "Annotations on classes and constructors" in the manual.
Interface changes:
- Added protected methods to BaseTypeVisitor so that checkers can change the checks for annotations on classes, constructor declarations, and constructor invocations.
- Removed BaseTypeVisitor#checkAssignability and BaseTypeVisitor#isAssignable methods.
- Renamed AnnotatedTypeFactory#getEnclosingMethod to AnnotatedTypeFactory#getEnclosingElementForArtificialTree
Closed issues:
2159, 2230, 2318, 2324, 2330, 2334, 2343, 2344, 2353, 2366, 2367, 2370, 2371, 2385.
Checker Framework 2.7.0
Version 2.7.0, March 1, 2019
The manual links to the AWS crypto policy compliance checker, which enforces that no weak cipher algorithms are used with the Java crypto API.
The Nullness Checker supports RxJava annotations io.reactivex.annotations.NonNull
and io.reactivex.annotations.Nullable
.
The checker-qual
artifact (jar file) contains an OSGi manifest.
New TYPE_DECLARATION
enum constant in TypeUseLocation
makes it possible to (for example) set defaults annotations for class/interface definitions.
Interface changes:
- Renamed the
value
element of the@HasSubsequence
annotation to
subsequence
. - Renamed
@PolySignedness
to@PolySigned
. - Renamed
AnnotatedTypeFactory.ParameterizedMethodType
toParameterizedExecutableType
.
Added missing checks regarding annotations on classes, constructor declarations, and constructor invocations. You may see new warnings.
Closed issues:
788, 1751, 2147, 2163, 2186, 2235, 2243, 2263, 2264, 2286, 2302, 2326, 2327.
Checker Framework 2.6.0
Version 2.6.0, February 3, 2019
The manual includes a section about how to use Lombok and the Checker
Framework simultaneously.
Commons CSV has been added to the annotated libraries on Maven Central.
Some error messages have been changed to improve comprehensibility,
such as by adjusting wording or adding additional information.
Relevant to type system implementers:
Renamed method areSameIgnoringValues to areSameByName.
Closed issues: 2008, 2166, 2185, 2187, 2221, 2224, 2229, 2234, 2248.
Also fixed false negatives in handling of Map.get().
Checker Framework 2.5.8
The manual now links to the AWS KMS compliance checker, which enforces that calls to AWS KMS only generate 256-bit keys.
Checker Framework 2.5.7
Version 2.5.7, November 4, 2018
New @EnsuresKeyFor and @EnsuresKeyForIf method annotations permit specifying the postcondition that a method gives some value a @KeyFor type.
The manual links to the Rx Thread & Effect Checker, which enforces UI Thread safety properties for stream-based Android applications.
Closed issues:
1014, 2151, 2178, 2180, 2183, 2188, 2190, 2195, 2196, 2198, 2199
Checker Framework 2.5.6
Version 2.5.6, October 3, 2018
Introduce checker-qual-android artifact that is just like the checker-qual artifact, but the qualifiers have classfile retention. This is useful for Android projects.
Removed the code for the checker-compat-qual artifact. It was only useful for Java 7, which the Checker Framework no longer supports. The checker-compat-qual artifact remains available on Maven Central, with versions 2.5.5 and earlier.
Closed issues:
2135, 2157, 2158, 2164, 2171.
Checker Framework 2.5.5
Version 2.5.5, August 30, 2018
Implicit imports (deprecated in November 2014) are no longer supported.
Renamed the testlib Maven artifact to framework-test.
Removed command-line option -AprintErrorStack, which is now the default.
Added -AnoPrintErrorStack to disable it (which should be rare).
Replaced ErrorReporter class with BugInCF and UserError exceptions.
Closed issues:
1999, 2008, 2023, 2029, 2074, 2088, 2098, 2099, 2102, 2107.
Checker Framework 2.5.4
Version 2.5.4, August 1, 2018
Closed issues:
2030, 2048, 2052, 2059, 2065, 2067, 2073, 2082.
Checker Framework 2.5.3
Version 2.5.3, July 2, 2018
Closed issues:
266, 1248, 1678, 2010, 2011, 2018, 2020, 2046, 2047, 2054.
Checker Framework 2.5.2
Version 2.5.2, June 1, 2018
In the Map Key Checker, null is now @UnknownKeyFor
. See the "Map Key Checker" chapter in the manual for more details.
Closed issues:
370, 469, 1701, 1916, 1922, 1959, 1976, 1978, 1981, 1983, 1984, 1991, 1992.