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.