Release 3.10.0 of the Checker Framework

10 views
Skip to first unread message

Suzanne Millstein

unread,
Feb 1, 2021, 4:12:07 PM2/1/21
to Checker Framework discussion
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.10.0:

**User-visible changes:**

Moved utility classes from `checker-qual.jar` to the new `checker-util.jar`.
Also, added `util` to the end of all the packages of the utility classes.

In Maven Central, `checker.jar` no longer contains duplicates of qualifiers in `checker-qual.jar`, but rather uses a Maven dependency. A fat jar file with all the dependencies (like the old `checker.jar`) is available in Maven Central with the classifier "all".

When supplying the `-Ainfer=...` command-line argument, you must also supply `-Awarns`.

Replaced several error message keys:
 * `contracts.precondition.expression.parameter.name`
 * `contracts.postcondition.expression.parameter.name`
 * `contracts.conditional.postcondition.expression.parameter.name`
 * `method.declaration.expression.parameter.name`
by new message keys:
 * `expression.parameter.name.invalid`
 * `expression.parameter.name.shadows.field`

**Implementation details:**

Deprecated `ElementUtils.enclosingClass`; use `ElementUtils.enclosingTypeElement`.

Removed classes (use `SourceChecker` instead):
 * `BaseTypeContext`
 * `CFContext`
 * `BaseContext`

Removed methods:
 * `SourceChecker.getContext()`: it returned the receiver
 * `SourceChecker.getChecker()`: it returned the receiver
 * `AnnotatedTypeFactory.getContext()`: use `getChecker()`
 * methods on `TreePath`s from class 'TreeUtils`; use the versions in `TreePathUtil`.

Moved class:
 * org.checkerframework.framework.util.PurityUnqualified to
   org.checkerframework.framework.qual.PurityUnqualified

Renamed methods:
 * `AnnotatedTypeMirror.directSuperTypes` => `directSupertypes` (note capitalization) for consistency with `javax.lang.model.util.Types`
 * `AnnotatedTypeMirror.removeAnnotation(Class)` => `removeAnnotationByClass`
 * `MethodCall.getParameters` => `getArguments`
 * `MethodCall.containsSyntacticEqualParameter` => `containsSyntacticEqualArgument`
 * `ArrayAccess.getReceiver` => `getArray`

**Closed issues:**
#3325 , #3474.
Reply all
Reply to author
Forward
0 new messages