Version 3.7.0, October 1, 2020
The new Called Methods Checker tracks methods that have definitely been called on an object. It automatically supports detecting mis-uses of the builder pattern in code that uses Lombok or AutoValue.
Accumulation analysis is now supported via a generic Accumulation Checker. An accumulation analysis is a restricted form of typestate analysis that does not require a precise alias analysis for soundness. The Called Methods Checker is an accumulation analysis.
The Nullness Checker supports annotations org.codehaus.commons.nullanalysis.NotNull, org.codehaus.commons.nullanalysis.Nullable, and org.jspecify.annotations.Nullable.
The Signature Checker supports annotations @CanonicalName and @CanonicalNameOrEmpty.
The Signature Checker treats jdk.jfr.Unsigned as an alias for its own @Unsigned annotation.
The shorthand syntax for the -processor command-line argument applies to
utility checkers, such as the Constant Value Checker.
Implementation details:
A checker implementation may override AnnotatedTypeFactory.getWidenedAnnotations
to provide special behavior for primitive widening conversions.
Deprecated org.checkerframework.framework.util.MultiGraphQualifierHierarchy and org.checkerframework.framework.util.GraphQualifierHierarchy. Removed AnnotatedTypeFactory#createQualifierHierarchy(MultiGraphFactory) and AnnotatedTypeFactory#createQualifierHierarchyFactory.
See Javadoc of MultiGraphQualifierHierarchy for instructions on how to use the new classes and methods.
Renamed methods:
NumberUtils.isFloatingPoint => TypesUtils.isFloatingPoint
NumberUtils.isIntegral => TypesUtils.isIntegralPrimitiveOrBoxed
NumberUtils.isPrimitiveFloatingPoint => TypeKindUtils.isFloatingPoint
NumberUtils.isPrimitiveIntegral => TypeKindUtils.isIntegral
NumberUtils.unboxPrimitive => TypeKindUtils.primitiveOrBoxedToTypeKind
TypeKindUtils.widenedNumericType => TypeKindUtils.widenedNumericType
TypesUtils.isFloating => TypesUtils.isFloatingPrimitive
TypesUtils.isIntegral => TypesUtils.isIntegralPrimitive
The CFStore copy constructor now takes only one argument.
Closed issues:
#352, #354, #553, #722, #762, #2208, #2239, #3033, #3105, #3266, #3275, #3408, #3561, #3616, #3619, #3622, #3625, #3630, #3632, #3648, #3650, #3667, #3668, #3669, #3700, #3701.