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
@QualifierForLiteralto replace@ImplicitFor(literals, stringpatterns). - Use the meta-annotation
@DefaultForto replace@ImplicitFor(typeKinds, types). - Use the new meta-annotation
@UpperBoundForto 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.