Skip to content

Releases: typetools/checker-framework

Checker Framework 3.22.0

02 May 18:19
Compare
Choose a tag to compare

Version 3.22.0 (May 2, 2022)

User-visible changes:

The Signedness Checker now checks calls to equals() as well as to ==. When two formal parameter types are annotated with @PolySigned, the two arguments at a call site must have the same signedness type annotation. (This differs from the standard rule for polymorphic qualifiers.)

Implementation details:

When passed a NewClassTree that creates an anonymous constructor, AnnotatedTypeFactory#constructorFromUse now returns the type of the anonymous constructor rather than the type of the super constructor invoked in the anonymous classes constructor. If the super constructor has explicit annotations, they are copied to the anonymous classes constructor.

Closed issues:
#5113.

Checker Framework 3.21.4

01 Apr 17:48
Compare
Choose a tag to compare

Version 3.21.4 (April 1, 2022)

Closed issues:
#5086.

Checker Framework 3.21.3

01 Mar 20:43
Compare
Choose a tag to compare

Version 3.21.3 (March 1, 2022)

Closed issues:
#2847, #4965, #5039, #5042, #5047.

Checker Framework 3.21.2

01 Feb 21:56
Compare
Choose a tag to compare

Version 3.21.2 (February 1, 2022)

User-visible changes:

The wpi.sh script supports non-standard names for build system compile targets via the new -c command-line option.

The Checker Framework now more precisely computes and checks the type of the pattern variable in a pattern match instanceof.

Implementation details:

Deprecated CFGLambda.getMethod{Name} in favor of getEnclosingMethod{Name}.

Closed issues:
#4615, #4993, #5006, #5007, #5008, #5013, #5016, #5021.

Checker Framework 3.21.1

07 Jan 23:20
Compare
Choose a tag to compare

Version 3.21.1 (January 7, 2022)

User-visible changes:

The Checker Framework Gradle Plugin now works incrementally: if you change just one source file, then Gradle will recompile just that file rather than all files.

Closed issues:
#2401, #4994, #4995, #4996.

Checker Framework 3.21.0

17 Dec 20:15
Compare
Choose a tag to compare

Version 3.21.0 (December 17, 2021)

User-visible changes:

The Checker Framework now more precisely computes the type of a switch expression.

Implementation details:

The dataflow framework now analyzes switch expressions and switch statements that use the new -> case syntax. To do so, a new node, SwitchExpressionNode, was added.

Closed issues:
#2373, #4934, #4977, #4979, #4987.

Checker Framework 3.20.0

06 Dec 22:34
Compare
Choose a tag to compare

Version 3.20.0 (December 6, 2021)

User-visible changes:

The Checker Framework now runs on code that contains switch expressions and switch statements that use the new -> case syntax, but treats them conservatively. A future version will improve precision.

Implementation details:

The dataflow framework can be run on code that contains switch expressions and switch statements that use the new -> case syntax, but it does not yet analyze the cases in a switch expression and it treats -> as :. A future version will do so.

Removed methods and classes that have been deprecated for more than one year:

  • Old way of constructing qualifier hierarchies
  • @SuppressWarningsKeys
  • RegularBlock.getContents()
  • TestUtilities.testBooleanProperty()
  • CFAbstractTransfer.getValueWithSameAnnotations()

Closed issues:
#4911, #4948, #4965.

Checker Framework 3.19.0

01 Nov 18:11
Compare
Choose a tag to compare

Version 3.19.0 (November 1, 2021)

User-visible changes:

The Checker Framework runs under JDK 17 -- that is, it runs on a version 17 JVM. The Checker Framework also continues to run under JDK 8 and JDK 11. New command-line argument -ApermitUnsupportedJdkVersion lets you run the Checker Framework on any JDK (version 8 or greater) without a warning about an unsupported JDK version. The Checker Framework does not yet run on code that contains switch expressions.

Implementation details:

Removed org.checkerframework.framework.type.VisitorState
Removed AnnotatedTypeFactory#postTypeVarSubstitution

Deprecated methods in AnnotatedTypeFactory:

  • getCurrentClassTree
  • getCurrentMethodReceiver

Closed issues:
#3014, #4908, #4924, #4932.

Checker Framework 3.18.1

04 Oct 17:42
Compare
Choose a tag to compare

Version 3.18.1 (October 4, 2021)

Closed issues:
#4902 and #4903.

Checker Framework 3.18.0

01 Sep 17:39
Compare
Choose a tag to compare

Version 3.18.0 (September 1, 2021)

User-visible changes:

Java records are type-checked. Thanks to Neil Brown.

Closed issues:
#4838, #4843, #4852, #4853, #4861, #4876, #4877, #4878, #4878, #4889, #4889.