Skip to content

Checker Framework 2.9.0

Compare
Choose a tag to compare
@smillst smillst released this 03 Jul 17:24
· 4433 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.