We have released a new version of the Checker Framework.
The Checker Framework lets you create and/or run pluggable type checkers, in order to detect and prevent bugs in your code.
You can find documentation and download links at:
Changes for Checker Framework version 3.35.0:
User-visible changes:
The Checker Framework no longer issues type.checking.not.run errors. This reduces clutter in the output.
Signedness Checker:
Object.hashCode() is now @UnknownSignedness.Implementation details:
Instead of overriding isRelevant(), a type factory implementation should override isRelevantImpl(). Clients should continue to call isRelevant(); never call isRelevantImpl().
Methods that now return a boolean rather than void:
commonAssignmentCheck()checkArrayInitialization()checkLock()checkLockOfThisOrTree()ensureExpressionIsEffectivelyFinal()Methods that now return AnnotationMirrorSet instead of Set<? extends AnnotationMirror>:
getTopAnnotations()getBottomAnnotations()getDefaultTypeDeclarationBounds()getExceptionParameterLowerBoundAnnotations()Renamed BaseTypeVisitor.checkExtendsImplements() to checkExtendsAndImplements().
Class FieldInvariants:
AnnotatedTypeFactoryisSuperInvariant() has been renamed to isStrongerThan() and no longer takes an AnnotatedTypeFactoryCFAbstractValue.validateSet() takes a type factory rather than a QualifierHierarchy.
Removed methods that have been deprecated for over two years.
Closed issues:
#4170, #5722, #5777, #5807, #5821, #5826, #5829, #5837, #5930.