Changelog History
Page 2
-
v3.1.1 Changes
February 03, 2020๐ Version 3.1.1, February 3, 2020
๐ New command-line options:
-AassumeDeterministic Unsoundly assume that every method is deterministic
-AassumePure Unsoundly assume that every method is pure๐ Renamed -Anocheckjdk to -ApermitMissingJdk. The old version still works, for backward compatibility.
๐ Renamed -Alint=forbidnonnullarraycomponents to -Alint=soundArrayCreationNullness. The old version still works, for backward compatibility.
Implementation details:
- ๐ Deprecated QualifierHierarchy#getTypeQualifiers.
- ๐ Deprecated Analysis#Analysis(ProcessingEnvironment) and Analysis#Analysis(T, int, ProcessingEnvironment); use Analysis#Analysis(), Analysis#Analysis(int), Analysis#Analysis(T), and Analysis#Analysis(T, int) instead.
Closed issues:
2181, 2975, 3018, 3022, 3032, 3036, 3037, 3038, 3041, 3049, 3055, 3076.
-
v3.1.0 Changes
January 03, 2020๐ Version 3.1.0, January 3, 2020
๐จ Command-line option -AprintGitProperties prints information about the git repository from which the Checker Framework was compiled.
Implementation details:
- โ Removed static cache in AnnotationUtils#areSameByClass and added
AnnotatedTypeFactory#areSameByClass that uses an instance cache. - โ Removed static cache in AnnotationBuilder#fromName and #fromClass.
- ContractsUtils#getPreconditions takes an ExecutableElement as an argument.
- ContractsUtils#getContracts returns a Set.
- ๐ Moved ContractUtils.Contract to outer level.
- ๐ Renamed ConditionalPostcondition#annoResult to ConditionalPostcondition#resultValue.
Closed issues:
2867, 2897, 2972.
- โ Removed static cache in AnnotationUtils#areSameByClass and added
-
v3.0.1 Changes
December 02, 2019๐ Version 3.0.1, December 2, 2019
๐ New command-line option for the Constant Value Checker
-AnoNullStringsConcatenation
unsoundly assumes that every operand of a String concatenation is non-null.Implementation details:
- ๐ Moved AnnotatedTypes#hasTypeQualifierElementTypes to AnnotationUtils.
- ๐ Deprecated AnnotatedTypes#isTypeAnnotation and AnnotatedTypes#hasTypeQualifierElementTypes.
Closed issues:
945, 1224, 2024, 2744, 2809, 2815, 2818, 2830, 2840, 2853, 2854, 2865, 2873, 2874, 2878, 2880, 2886, 2888, 2900, 2905, 2919, 2923.
-
v3.0.0 Changes
November 01, 2019๐ Version 3.0.0, November 1, 2019
The Checker Framework works on both JDK 8 and JDK 11.
- Type annotations for JDK 8 remain in jdk8.jar.
- Type annotations for JDK 11 appear in stub files in checker.jar.
โ Removed the
@PolyAll
annotation.Implementation details:
- โ Removed all previously deprecated methods.
AnnotatedTypeFactory#getFnInterfaceFromTree
now returns anAnnotatedExecutableType
.AnnotationUtils#areSame
and#areSameByName
now only accept non-nullAnnotationMirrors
Closed issues:
1169, 1654, 2081, 2703, 2739, 2749, 2779, 2781, 2798, 2820, 2824, 2829, 2842, 2845, 2848. -
v2.11.1 Changes
October 01, 2019๐ Version 2.11.1, October 1, 2019
The manual links to the Object Construction Checker.
Closed issues:
1635, 2718, 2767. -
v2.11.0 Changes
August 31, 2019๐ Version 2.11.0, August 30, 2019
The Checker Framework now uses the Java 9 javac API. The manual describes
how to satisfy this dependency, in a way that works on a Java 8 JVM.
โ Running the Checker Framework on a Java 9 JVM is not yet supported. -
v2.10.1 Changes
August 22, 2019๐ Version 2.10.1, August 22, 2019
Closed issues:
1152, 1614, 2031, 2482, 2543, 2587, 2678, 2686, 2690, 2712, 2717, 2713, 2721, 2725, 2729. -
v2.10.0 Changes
August 01, 2019๐ Version 2.10.0, August 1, 2019
โ Removed the NullnessRawnessChecker. Use the NullnessChecker instead.
Closed issues:
435, 939, 1430, 1687, 1771, 1902, 2173, 2345, 2470, 2534, 2606, 2613, 2619, 2633, 2638. -
v2.9.0 Changes
July 03, 2019๐ Version 2.9.0, July 3, 2019
๐ Renamed the Signedness Checker's
@Constant annotation
to@SignednessGlb
.
Introduced an alias, @SignedPositive, for use by programmers.Annotated the first argument of
Opt.get
andOpt.orElseThrow
as@NonNull
.โ Removed meta-annotation
@ImplicitFor
:- ๐ Use the new meta-annotation
@QualifierForLiteral
to replace@ImplicitFor(literals, stringpatterns)
. - 0๏ธโฃ Use the meta-annotation
@DefaultFor
to replace@ImplicitFor(typeKinds, types)
. - ๐ Use the new meta-annotation
@UpperBoundFor
to specify a qualifier upper bound for certain types. - ๐ You can completely remove
@ImplicitFor(typeNames = Void.class, literals = LiteralKind.NULL)
on bottom qualifiers.@DefaultFor(types = Void.class)
and@QualifierForLiterals(literals = LiteralKind.NULL)
are added to the bottom qualifier by default.
โ Added
@DefaultQualifierOnUse
and@NoDefaultQualifierOnUse
type declaration annotations๐ New/changed error message keys:
- ๐ initialization.static.fields.uninitialized for uninitialized static fields
- unary.increment.type.incompatible and unary.decrement.type.incompatible
replace some occurrences of compound.assignment.type.incompatible
Implementation details:
- ๐ Renamed QualifierPolymorphism#annotate methods to resolve
- ๐ Renamed ImplicitsTreeAnnotator to LiteralTreeAnnotator
- 0๏ธโฃ Renamed ImplicitsTypeAnnotator to DefaultForTypeAnnotator
- โ Removed TypeUseLocation.TYPE_DECLARATION
- โ Removed InheritedFromClassAnnotator, replace with DefaultQualifierForUseTypeAnnotator
- ๐ Rename TreeUtils.isSuperCall and TreeUtils.isThisCall to isSuperConstructorCall and isThisConstructorCall
Closed issues:
2247, 2391, 2409, 2434, 2451, 2457, 2468, 2484, 2485, 2493, 2505, 2536, 2537, 2540, 2541, 2564, 2565, 2585. - ๐ Use the new meta-annotation
-
v2.8.2 Changes
June 03, 2019๐ Version 2.8.2, June 3, 2019
๐ The Signature Checker supports a new type, @FqBinaryName.
โ Added a template for a repository that you can use to write a custom checker.
๐ Linked to the Checker Framework Gradle plugin, which makes it easy to run a checker on a project that is built using the Gradle build tool.
๐ Implementation detail: deprecated TreeUtils.skipParens in favor of TreeUtils.withoutParens which has the same specification.
Closed issues:
2291, 2291, 2406, 2406, 2469, 2469, 2477, 2477, 2479, 2479, 2480, 2480, 2494, 2494, 2499, 2499.