What's new in Annotation File Utilities 3.42.0

Dec 17, 2023
  • No user-visible changes.

New in Annotation File Utilities 3.41.0 (Dec 5, 2023)

  • No user-visible changes.

New in Annotation File Utilities 3.40.0 (Nov 2, 2023)

  • No user-visible changes.

New in Annotation File Utilities 3.39.0 (Oct 5, 2023)

  • Runs under JDK 21 -- that is, it runs on a version 21 JVM.

New in Annotation File Utilities 3.38.0 (Sep 1, 2023)

  • No user-visible changes.

New in Annotation File Utilities 3.37.0 (Aug 2, 2023)

  • No user-visible changes.

New in Annotation File Utilities 3.36.0 (Jul 6, 2023)

  • Minor bug fixes and improvements.
  • Fixed issues #582.

New in Annotation File Utilities 3.35.0 (Jun 2, 2023)

  • Runs under JDK 20 -- that is, it runs on a version 20 JVM.

New in Annotation File Utilities 3.34.0 (May 3, 2023)

  • Runs under JDK 20 -- that is, it runs on a version 20 JVM.

New in Annotation File Utilities 3.33.0 (Apr 6, 2023)

  • Requires JDK 11 to build. Still runs on JDK 8 or later.
  • Command-line option --comments is no longer supported.

New in Annotation File Utilities 3.28.0 (Dec 2, 2022)

  • No user-visible changes.

New in Annotation File Utilities 3.26.0 (Oct 4, 2022)

  • Runs under Java 18.
  • Renamed all annotator* packages to org.checkerframework.afu.annotator*, and renamed all scenelib* packages to org.checkerframework.afu.scenelib*.
  • Code is now formatted with Spotless; use ./gradlew spotlessCheck or ./gradlew spotlessCheck.

New in Annotation File Utilities 3.25.0 (Sep 2, 2022)

  • No user-visible changes.

New in Annotation File Utilities 3.24.0 (Aug 4, 2022)

  • Performance improvements.

New in Annotation File Utilities 3.23.0 (Jul 12, 2022)

  • No user-visible changes.

New in Annotation File Utilities 3.22.2 (Jun 16, 2022)

  • No user-visible changes.

New in Annotation File Utilities 3.22.1 (Jun 1, 2022)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.22.0 (May 3, 2022)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.21.4 (Apr 5, 2022)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.21.3 (Mar 2, 2022)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.21.2 (Feb 2, 2022)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.21.1 (Jan 9, 2022)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.21.0 (Dec 19, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.20.0 (Dec 7, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.19.0 (Nov 2, 2021)

  • Added support for JDK 17, dropped support for JDK 16.

New in Annotation File Utilities 3.18.1 (Oct 6, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.18.0 (Sep 2, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.17.0 (Aug 3, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.16.0 (Jul 14, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.15.0 (Jun 20, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.14.0 (Jun 2, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.13.0 (May 4, 2021)

  • Improved handling of implicit default constructors.

New in Annotation File Utilities 3.12.0 (May 4, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.11.0 (Mar 2, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.10.0 (Feb 3, 2021)

  • Implementation detail: Uses real ASM rather than ASMX.

New in Annotation File Utilities 3.9.17 (Jan 14, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.16 (Jan 5, 2021)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.15 (Dec 2, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.14 (Nov 3, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.13 (Oct 2, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.12 (Sep 3, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.11 (Aug 4, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.10 (Jul 2, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.9 (Jun 3, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.8 (May 4, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.7 (Apr 6, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.6 (Mar 3, 2020)

  • Minor bug fixes and improvements
  • Fixed issue: Writing @HasQualifierParameter on a JDK class causes IllegalArgumentException

New in Annotation File Utilities 3.9.5 (Feb 4, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.4 (Jan 5, 2020)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.3 (Dec 3, 2019)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.2 (Nov 4, 2019)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.1 (Oct 2, 2019)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.9.0 (Sep 2, 2019)

  • 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 AFU on a Java 9+ JVM is also supported.
  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.8.11 (Aug 23, 2019)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.8.10 (Aug 2, 2019)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.8.9 (Jul 4, 2019)

  • Minor bug fixes and improvements.
  • Fixed issues #216 and #220.

New in Annotation File Utilities 3.8.8 (Jun 5, 2019)

  • Added command-line arguments -cp and -classpath to extract-annotations.
  • Added command-line argument --verbose to extract-annotations and insert-annotations.
  • Removed command-line argument -v from extract-annotations; use --version instead.
  • insert-annotations-to-source does a better check for existing annotations, to avoid inserting a duplicate annotation.
  • Fixed issues #200 and #201.

New in Annotation File Utilities 3.8.7 (May 2, 2019)

  • Fixed issue #194(missing dependencies).

New in Annotation File Utilities 3.8.6 (Apr 4, 2019)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.8.5 (Apr 4, 2019)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.8.4 (Apr 4, 2019)

  • Fix bug in which imports were not added for annotations on constructor invocations.
  • Documentation clarifies that insert-annotations[-to-source] modifies its target.

New in Annotation File Utilities 3.8.3 (Apr 4, 2019)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.8.2 (Apr 4, 2019)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.8.1 (Apr 4, 2019)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.8.0 (Sep 1, 2018)

  • Requires a Java 8 JVM to execute.
  • annotation-file-utilities.jar is now a skinny jar. annotation-file-utilities-all.jar is a fat jar.
  • Implementation detail: ASMX now uses package org.objectweb.asmx, rather than org.objectweb.asm.
  • Fixed issues #168 and #174.

New in Annotation File Utilities 3.6.55 (Sep 1, 2018)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.54 (Sep 1, 2018)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.48 (Dec 2, 2017)

  • Fixes issues #144 and #145.

New in Annotation File Utilities 3.6.47 (Dec 2, 2017)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.46 (Dec 2, 2017)

  • Fixes issue #124.

New in Annotation File Utilities 3.6.45 (Oct 4, 2017)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.44 (Aug 4, 2017)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.40 (Apr 3, 2017)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.39 (Mar 2, 2017)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.38 (Jan 22, 2017)

  • The Annotation File Utilities webpage has moved to https://checkerframework.org/annotation-file-utilities/. Old URLs should redirect to the new one, but please update your links and let us know if any old links are broken rather than redirecting.

New in Annotation File Utilities 3.6.37 (Jan 19, 2017)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.36 (Dec 2, 2016)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.35 (Nov 5, 2016)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.34 (Oct 4, 2016)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.32 (Sep 2, 2016)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.31 (Aug 2, 2016)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.30 (Jul 2, 2016)

  • Minor bug fixes and improvements.

New in Annotation File Utilities 3.6.29 (Jun 1, 2016)

  • extract-annotations no longer puts package annotations on non-existent class, fixing Issue #117.
  • Closes issue #120.

New in Annotation File Utilities 3.6.28 (May 5, 2016)

  • AScene now has a copy constructor and implements Cloneable.

New in Annotation File Utilities 3.6.27 (Apr 1, 2016)

  • The annotation file format permits use of a class name, in addition to , to specify a constructor.
  • Closes issues #70 and #88.

New in Annotation File Utilities 3.6.26 (Mar 4, 2016)

  • Avoids reinserting an annotation that already exists in comments, fixing Issue #114.

New in Annotation File Utilities 3.6.25 (Feb 2, 2016)

  • Uses system javac to compile the executable program, thus enabling Java 7 execution.
  • Clears set of required imports after processing each source file, fixing Issue #111.◦Escapes String fields of annotations, fixing Issue #112.

New in Annotation File Utilities 3.6.24 (Jan 5, 2016)

  • Fixes Issue #108 by adding a LICENSE.txt file.
  • Fixes offset calculation for wide JVM instructions.
  • Makes minor improvements to build process.

New in Annotation File Utilities 3.6.18 (Aug 5, 2015)

  • Moved the Annotation Tools version control repository from Google Code to GitHub, and from the Mercurial version control system to Git. If you have cloned the version control repository, then discard your old clone and create a new one using this command: git clone https://github.com/typetools/annotation-tools.git
  • Fixes some errors involving default class and method bound insertion.

New in Annotation File Utilities 3.6.16 (Jun 23, 2015)

  • Fixes multiple crash-causing bugs in insert-annotations-to-source.

New in Annotation File Utilities 3.6.15 (May 6, 2015)

  • Allows annotations on constituents of an intersection type cast without the use of the AST path format.
  • Fixes assorted bugs in insert-annotations.

New in Annotation File Utilities 3.6.14 (Apr 18, 2015)

  • Fixes numerous minor bugs in insert-annotations and insert-annotations-to-source.

New in Annotation File Utilities 3.6.13 (Mar 3, 2015)

  • Extends support for lambda expressions, member references, and type arguments of static method calls and member references to extract-annotations and insert-annotations.
  • Slightly changes JAIF format for the new features. (See file format documentation for details.)

New in Annotation File Utilities 3.6.12 (Jan 31, 2015)

  • Adds support for lambda expressions, member references, and type arguments of static method calls and member references.

New in Annotation File Utilities 3.6.11 (Dec 29, 2014)

  • Fixes more insertion logic bugs, including errors in handling generic arrays.

New in Annotation File Utilities 3.6.10 (Dec 29, 2014)

  • Fixes many bugs, mostly in AST path-based insertion logic.

New in Annotation File Utilities 3.6.9 (Dec 29, 2014)

  • Minor bug fixes and improvements

New in Annotation File Utilities 3.6.8 (Sep 26, 2014)

  • Fixes numerous bugs in AST path-based insertion logic.

New in Annotation File Utilities 3.6.7 (Aug 2, 2014)

  • Improves Java 9 support.
  • Fills in some previously missing cases for AST path-based insertion specifications.

New in Annotation File Utilities 3.6.6 (Jul 9, 2014)

  • Fixes bug affecting inner array types of new[] expressions in the AST path-based insertion logic.
  • Fixes JAIF generation bugs involving insert-annotation and insert typecast within methods and fields.

New in Annotation File Utilities 3.6.5 (Jun 3, 2014)

  • Generates extends bounds when necessary for annotation insertion.
  • Fixes assorted bugs in the AST path-based insertion logic.

New in Annotation File Utilities 3.6.4 (May 2, 2014)

  • Expands AST path support to cover every AST node within a class declaration. Abbreviates enum tags for annotations if --abbreviate is selected.
  • Generates explicit default constructors when necessary for annotation insertion.

New in Annotation File Utilities 3.6.3 (Apr 3, 2014)

  • Eliminates insert-annotation problems with handling Java 8 class files.
  • Corrects annotation placement within a qualified type name.
  • Fills in gaps in AST Path API. All (Java 7) non-declaration nodes can now be identified by a path from an enclosing declaration.
  • Expands scene-lib API with visitor framework and new class APIIndex, which provides a cache that maps Java abstract syntax tree nodes to AST paths as defined in the annotation file format specification.

New in Annotation File Utilities 3.5.8 (Jan 13, 2014)

  • Creates output directory in current working directory (by default), rather than relative to input pathname.
  • Recognizes "instanceinit" keyword in JAIF for adding annotations inside instance initializers.
  • Corrects syntax of results of inserting annotations on bare array literals.
  • More fully treats enum, interface, and annotation declarations in accordance with the rules for class declarations.

New in Annotation File Utilities 3.5.6 (Nov 5, 2013)

  • Adds "insert-annotation" to JAIF format, allowing the use of AST paths to specify source locations for annotation insertion (which previously was possible only for typecast insertions).
  • For consistency with extract-annotations, insert-annotations-to-source now matches generic method types in the source with JAIF specifications for their least upper bounds.
  • Allows annotations on inner type declarations of parameterized types.
  • Avoids spurious code location matches on anonymous inner subclasses of an outer class.
  • Works around Java regex bug that on some input causes an infinite loop in the Matcher.
  • Fixes many other bugs, most involving receiver insertions.
  • No longer aborts on (non-fatal) warnings found during the javac type-checking phase of

New in Annotation File Utilities 3.5.5 (Aug 30, 2013)

  • Allows annotation insertion at constructor "return type" as per the specification.
  • Fixes assorted bugs dealing with type qualification, inner classes, and receiver insertion.

New in Annotation File Utilities 3.5.4 (Aug 2, 2013)

  • Allow the use of command-line argument files. Argument file rules are identical to those of javac.
  • The Annotation File Utilities now appropriately handles vararg parameters.
  • Minor documentation improvements.

New in Annotation File Utilities 3.5.2 (Apr 5, 2013)

  • Allow annotations on compound types of a cast insertion.
  • Added --print_error_stack command-line option to insert-annotations-to-source tool to print a stack trace on an error.
  • Various bug fixes.
  • Improvements to the Annotation File Format manual:
  • Clarified "Grammar" section by reordering and adding more details.
  • Added "Design and Implementation Details" section.

New in Annotation File Utilities 3.5.1 (Mar 2, 2013)

  • Small improvements to error messages when parsing JAIF files and for illegal source code insertions.
  • Installation instruction and manual improvements.
  • Insert source code annotations in the semantically correct place for qualified types.
  • For bytecode annotation extraction and insertion read and put "local" type annotations in the Code attribute, not the Method attribute.
  • Better handling of source code insertions in anonymous and local classes:
  • Allow source code insertions in a local class (a class defined within a method).
  • Bug fixes for anonymous and local class indexes.
  • Don't traverse into nested classes when calculating a source code index.
  • Improved support for source code method declaration receiver parameter insertions:
  • Use the full type name (Outer.Inner1.Inner2) for receiver insertions in inner classes.
  • Allow annotation insertions on compound types of method declaration receiver parameters.

New in Annotation File Utilities 3.5 (Feb 5, 2013)

  • Updated to JSR308 bytecode representation and receiver parameter syntax.
  • Support source code insertion of annotated casts.
  • Support adding annotations to bytecode for type casts with intersection types.

New in Annotation File Utilities 3.4 (Feb 5, 2013)

  • Adapted to underlying changes in JSR 308.
  • Support .class literals as annotation attributes.

New in Annotation File Utilities 3.3 (Jul 17, 2012)

  • Improved support for annotations on array creation expressions.
  • Small tweaks to the code and documentation.