You can find documentation and download links for these projects at:
http://types.cs.washington.edu/jsr308/
Changes for the Checker Framework
Version 1.4.0, 11 Sep 2012
User-visible framework improvements:
Defaulting:
@DefaultQualifier annotations now use a Class instead of a String,
preventing simple typo errors.
@DefaultLocation extended with more constants.
TreeAnnotator propagates the least-upper-bound of the operands of
binary/compound operations, instead of taking the default qualifier.
Stub files now ignore the return type, allowing for files automatically
generated from other formats.
Type factories and type hierarchies:
Simplify AnnotatedTypeFactory constructors.
Add a GeneralAnnotatedTypeFactory that supports multiple type systems.
Improvements to QualifierHierarchy construction.
Type-checking improvements:
Propagate annotations from the sub-expression of a cast to its result.
Better handling of assignment context and improved inference of
array creation expressions.
Optional stricter checking of casts to array and generic types using
the new -Alint=cast:strict flag.
This will become the default in the future.
Code reorganization:
SourceChecker.initChecker no longer has a ProcessingEnvironment
parameter. The environment can now be accessed using the standard
processingEnv field (instead of the previous env field).
Classes com.sun.source.util.AbstractTypeProcessor and
checkers.util.AggregateChecker are now in package checkers.source.
Move isAssignable from the BaseTypeChecker to the BaseTypeVisitor; now
the Checker only consists of factories and logic is contained in the
Visitor.
Warning and error messages:
Issue a warning if an unsupported -Alint option is provided.
Improved error messages.
Maven plugin now works.
Nullness Checker:
Only allow creation of (implicitly) non-null objects.
Optionally forbid creation of arrays with @NonNull component type,
when flag -Alint=arrays:forbidnonnullcomponents is supplied.
This will become the default in the future.
Internal framework improvements:
Enable assertion checking.
Improve handling of annotated type variables.
Assignment context is now a type, not a tree.
Fix all compiler warnings.
Changes for the Type Annotations Compiler
Version 1.4.0, 11 Sep 2012
Tools for converting to new receiver syntax:
Files doc/convert-receiver.py and doc/convert-receiver.el are two
programs (one written in Python and one writtenin Emacs Lisp) that convert
a Java program from old-style (C++-style) receiver annotations to new-style
("this" formal parameter) receiver annotations.
Code improvements:
- Remove com.sun.source.util.AbstractTypeProcessor
- Remove com.sun.tools.javac.tree.JCTree.JCTypeAnnotation.annotation_position field
- Add V52 classfile version
- Adaptations to these changes and many cleanups
- All jtreg test cases pass
Base build
Updated to OpenJDK 8 langtools as of 7 Sep 2012.