Checker Framework v2.9.0 Release Notes

Release Date: 2019-07-03 // over 4 years ago
  • 🔖 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).
    • 0️⃣ 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
    • 0️⃣ 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.