Skip to content

@wmdietl wmdietl released this Aug 31, 2019 · 35 commits to master since this release

Version 2.11.0, August 30, 2019

The Checker Framework now uses the Java 9 javac API. The manual describes
how to satisfy this dependency, in a way that works on a Java 8 JVM.
Running the Checker Framework on a Java 9 JVM is not yet supported.

Assets 3

@smillst smillst released this Aug 22, 2019 · 51 commits to master since this release

Version 2.10.1, August 22, 2019

Closed issues:
1152, 1614, 2031, 2482, 2543, 2587, 2678, 2686, 2690, 2712, 2717, 2713, 2721, 2725, 2729.

Assets 3

@smillst smillst released this Aug 1, 2019 · 119 commits to master since this release

Version 2.10.0, August 1, 2019

Removed the NullnessRawnessChecker. Use the NullnessChecker instead.

Closed issues:
435, 939, 1430, 1687, 1771, 1902, 2173, 2345, 2470, 2534, 2606, 2613, 2619, 2633, 2638.

Assets 3

@smillst smillst released this Jul 3, 2019 · 191 commits to master since this release

Version 2.9.0, July 3, 2019

Renamed the Signedness Checker's @Constant annotation to @SignednessGlb.
Introduced an alias, @SignedPositive, for use by programmers.

Annotated the first argument of Opt.get and Opt.orElseThrow as @NonNull.

Removed meta-annotation @ImplicitFor:

  • Use the new meta-annotation @QualifierForLiteral to replace @ImplicitFor(literals, stringpatterns).
  • Use the meta-annotation @DefaultFor to replace @ImplicitFor(typeKinds, types).
  • Use the new meta-annotation @UpperBoundFor to specify a qualifier upper bound for certain types.
  • You can completely remove @ImplicitFor(typeNames = Void.class, literals = LiteralKind.NULL) on bottom qualifiers. @DefaultFor(types = Void.class) and @QualifierForLiterals(literals = LiteralKind.NULL) are added to the bottom qualifier by default.

Added @DefaultQualifierOnUse and @NoDefaultQualifierOnUse type declaration annotations

New/changed error message keys:

  • initialization.static.fields.uninitialized for uninitialized static fields
  • unary.increment.type.incompatible and unary.decrement.type.incompatible
    replace some occurrences of compound.assignment.type.incompatible

Implementation details:

  • Renamed QualifierPolymorphism#annotate methods to resolve
  • Renamed ImplicitsTreeAnnotator to LiteralTreeAnnotator
  • Renamed ImplicitsTypeAnnotator to DefaultForTypeAnnotator
  • Removed TypeUseLocation.TYPE_DECLARATION
  • Removed InheritedFromClassAnnotator, replace with DefaultQualifierForUseTypeAnnotator
  • Rename TreeUtils.isSuperCall and TreeUtils.isThisCall to isSuperConstructorCall and isThisConstructorCall

Closed issues:
2247, 2391, 2409, 2434, 2451, 2457, 2468, 2484, 2485, 2493, 2505, 2536, 2537, 2540, 2541, 2564, 2565, 2585.

Assets 3

@smillst smillst released this Jun 3, 2019 · 285 commits to master since this release

Version 2.8.2, June 3, 2019

The Signature Checker supports a new type, @FqBinaryName.

Added a template for a repository that you can use to write a custom checker.

Linked to the Checker Framework Gradle plugin, which makes it easy to run a checker on a project that is built using the Gradle build tool.

Implementation detail: deprecated TreeUtils.skipParens in favor of TreeUtils.withoutParens which has the same specification.

Closed issues:
2291, 2291, 2406, 2406, 2469, 2469, 2477, 2477, 2479, 2479, 2480, 2480, 2494, 2494, 2499, 2499.

Assets 3

@smillst smillst released this May 1, 2019 · 368 commits to master since this release

Version 2.8.1, May 1, 2019

Moved text about the Purity Checker into its own chapter in the manual.

Closed issues:
660, 2030, 2223, 2240, 2244, 2375, 2407, 2410, 2415, 2420, 2421, 2446, 2447, 2460, 2462.

Assets 3

@smillst smillst released this Apr 3, 2019 · 461 commits to master since this release

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.

Assets 3

@mernst mernst released this Mar 2, 2019 · 601 commits to master since this release

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.

Assets 3

@mernst mernst released this Feb 3, 2019 · 760 commits to master since this release

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().

Assets 3

@mernst mernst released this Dec 6, 2018 · 844 commits to master since this release

The manual now links to the AWS KMS compliance checker, which enforces that calls to AWS KMS only generate 256-bit keys.

Assets 3
You can’t perform that action at this time.