Skip to content

Releases: typetools/checker-framework

Checker Framework 2.8.0

03 Apr 20:35
Compare
Choose a tag to compare

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

02 Mar 05:06
Compare
Choose a tag to compare

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 to ParameterizedExecutableType.

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

03 Feb 21:35
Compare
Choose a tag to compare

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

06 Dec 01:25
Compare
Choose a tag to compare

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

05 Nov 13:34
Compare
Choose a tag to compare

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

03 Oct 12:48
Compare
Choose a tag to compare

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

31 Aug 02:35
Compare
Choose a tag to compare

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

01 Aug 22:27
Compare
Choose a tag to compare

Version 2.5.4, August 1, 2018

Closed issues:

2030, 2048, 2052, 2059, 2065, 2067, 2073, 2082.

Checker Framework 2.5.3

02 Jul 19:11
Compare
Choose a tag to compare

Version 2.5.3, July 2, 2018

Closed issues:

266, 1248, 1678, 2010, 2011, 2018, 2020, 2046, 2047, 2054.

Checker Framework 2.5.2

01 Jun 19:19
Compare
Choose a tag to compare

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.