Release 3.17.0 of the Checker Framework

0 views
Skip to first unread message

Suzanne Millstein

unread,
Aug 2, 2021, 2:39:51 PM8/2/21
to Checker Framework discussion
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:
http://CheckerFramework.org/

Changes for Checker Framework version 3.17.0:

**User-visible changes:**

`-Ainfer` can now infer postcondition annotations that reference formal parameters (e.g. `"#1"`, `"#2"`) and the receiver (`"this"`).

**Implementation details:**

Method renamings and signature changes (old methods are removed) in `GenericAnnotatedTypeFactory`:
* `getPreconditionAnnotation(VariableElement, AnnotatedTypeMirror)` => `getPreconditionAnnotations(String, AnnotatedTypeMirror, AnnotatedTypeMirror)`
* `getPostconditionAnnotation(VariableElement, AnnotatedTypeMirror, List<AnnotationMirror>)` => `getPostconditionAnnotations(String, AnnotatedTypeMirror, AnnotatedTypeMirror, List<AnnotationMirror>)`
* `getPreOrPostconditionAnnotation(VariableElement, AnnotatedTypeMirror, Analysis.BeforeOrAfter, List<AnnotationMirror>)` => `getPreOrPostconditionAnnotations(String, AnnotatedTypeMirror, AnnotatedTypeMirror, Analysis.BeforeOrAfter, List<AnnotationMirror>)`
* `requiresOrEnsuresQualifierAnno(VariableElement, AnnotationMirror, Analysis.BeforeOrAfter)` => `createRequiresOrEnsuresQualifier(String, AnnotationMirror, AnnotatedTypeMirror, Analysis.BeforeOrAfter, List<AnnotationMirror>)`

Method renamings and signature changes (old method is removed) in `WholeProgramInferenceStorage`:
* `getPreOrPostconditionsForField(Analysis.BeforeOrAfter, ExecutableElement, VariableElement, AnnotatedTypeFactory)` =>  `getPreOrPostconditions(Analysis.BeforeOrAfter, ExecutableElement, String, AnnotatedTypeMirror, AnnotatedTypeFactory)`

Method renamings:
 * `CFAbstractAnalysis.getFieldValues` => `getFieldInitialValues`

The following methods no longer take a `fieldValues` parameter:
 * `GenericAnnotatedTypeFactory#createFlowAnalysis`
 * `CFAnalysis` constructor
 * `CFAbstractAnalysis#performAnalysis`
 * `CFAbstractAnalysis` constructors

**Closed issues:**
#4685, #4689, #4785, #4805, #4806, #4815, #4829, #4849.
Reply all
Reply to author
Forward
0 new messages