Version 3.16.0 (July 13, 2021)
User-visible changes:
You can run the Checker Framework on a JDK 16 JVM. You can pass the --release 16 command-line argument to the compiler. You may need to add additional command-line options, such as --add-opens; see the Checker Framework manual. New syntax, such as records and switch expressions, is not yet supported or type-checked; that will be added in a future release. Thanks to Neil Brown for the JDK 16 support.
The Lock Checker supports a new type, @NewObject, for the result of a constructor invocation.
The -Ainfer command-line argument now outputs purity annotations even if neither -AsuggestPureMethods nor AcheckPurityAnnotations is supplied on the command line.
Implementation details:
Method renamings (the old methods remain but are deprecated):
AnnotationFileElementTypes.getDeclAnnotation=>getDeclAnnotations
Method renamings (the old methods were removed):
AnnotatedTypeMirror.clearAnnotations =>clearPrimaryAnnotations`
Method renamings in DefaultTypeHierarchy (the old methods were removed):
visitIntersectionSupertype=>visitIntersectionSupertypevisitIntersectionSubtype=>visitIntersection_TypevisitUnionSubtype=>visitUnion_TypevisitTypevarSubtype=>visitTypevar_TypevisitTypevarSupertype=>visitType_TypevarvisitWildcardSubtype=>visitWildcard_TypevisitWildcardSupertype=>visitType_Wildcard
Method renamings in AnnotatedTypes (the old methods were removed):
expandVarArgs=>expandVarArgsParametersexpandVarArgsFromTypes=>expandVarArgsParametersFromTypes