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
andOpt.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. - 👉 Use the new meta-annotation