@surli surli released this Dec 20, 2017 · 609 commits to master since this release

Assets 6

Christmas release! 🎄 🎅

The main new feature of this release is the integration of Java 9 module in Spoon model, but it also contains some other new features and bug fixes.
Thanks for the contributors, merry christmas and happy new year for all of you :)

New features

  • Add Factory#createQuery(Iterable). (PR: #1777)
  • Add a method to get the unit type of the compilation unit. (PR: #1776)
  • Add support for Java9 constructs in the Spoon metamodel (CtModule and related concepts). (PR: #1730)
  • Support partial evaluation of new Object[]{...}.length -> Literal. (PR: #1750)
  • Add an explicit construct for imports in the metamodel (CtImport). (PR: #1707)
  • Add method hasAnnotation. (PR: #1737)
  • Add inheritance between roles (CtRole#getSuperRole(), CtRole#getSubRole()). (PR: #1725)
  • CtModel implements CtQueryable. (PR: #1739)
  • Processor properties can be passed as string. (PR: #1734)

Bug Fixes

  • CompilationUnits are created on demand. (PR: #1782)
  • Start prefix space in ElementPrinterHelper. (PR: #1768)
  • Fix a NPE in CtTypeImpl#isSameParameter in noclasspath. (PR: #1767)
  • CtQueryImpl handles well preallocated exceptions done by JVM optimization. (PR: #1759)
  • Fix bug in partial evaluator. (PR: #1751)
  • Fix dirty exception in checking code at the end of model building. (PR: #1749)
  • annotation: Bug when using an annotation targeting declaration and types. (PR: #1774)
  • test: Improve CtGenerationTest and CtScannerTest. (PR: #1736)

Documentation

  • Add explanation in Javadoc of CtTypeReference#getActualClass. (PR: #1761)
  • Bump version number after release 6.0.0. (PR: #1732)

Refactoring

  • OutputType is available in Environment. (PR: #1784)
  • CompilationUnit returns an unmodifiable collection. (PR: #1781)
  • Manage sourceOutputDirectory in Environment. (PR: #1770)
  • SetSourceClasspath throws an exception in case a .class is given. (PR: #1766)
  • Add a new way to build a query in QueryFactory. (PR: #1740)

Tests

  • Check inheritance behaviour when using noclasspath with a sourceclasspath. (PR: #1760)
  • Refactor test to be independent from JDK version. (PR: #1764)
  • Metamodel's MMField valueTypes are not implicit. (PR: #1756)
  • Add test for substitution of return expression.S() with expressions. (PR: #1755)
  • Prepare upcoming behavioral change in template matcher. (PR: #1748)
  • Add test for getAnnotation().value() on shadow classes. (PR: #1738)

Other

  • Skip checkstyle in Travis install phase. (PR: #1746)

Unknown

  • Prepare for next development iteration.

Authors

Name Nb Commit
Simon Urli 20
Pavel Vojtechovsky 9
Martin Monperrus 3