Skip to content

Version 9.0.0

Latest
Compare
Choose a tag to compare
@effiban effiban released this 27 Apr 20:31
· 76 commits to master since this release
8259f51

What's Changed

This version contains yet another major refactoring consisting of the following phases:

  • Completed the extraction of the 'enrichment' phase, which adds Java-specifc information that cannot be stored in the Scala tree model. This was a pre-requisite for the next two phases
  • Added logic for determining the Java imports with high accuracy, although not 100% yet.
  • Much more accurate and complete transformations of Scala terms/types into Java

Changes to the SPI:

  • In ExtendedTransformers removed the following:
    • importerTransformer()
    • termNameTransformer()
    • typeNameTransformer().

This is because the tool will now automatically qualify all names using the initial imports, and only then perform the necessary transformations on them. So from now on, the only custom transformations that need to be overriden are those of the fully-qualified names, that is termSelectTransformer() and typeSelectTransformer().

  • In ExtendedPredicates removed:

    • importerExcludedPredicate()
    • termNameHasApplyMethod()
    • termNameSupportsNoArgInvocation().
      This is because again - as above, the tool will now qualify all names before handling them, and will also determine the final Java imports automatically.
  • In ExtendedInferrers removed nameTypeInferrer because, since all names are qualified before inference, now only selectTypeInferrer is needed.

  • Removed ExtendedProviders which allowed for specifying extra Java imports, but is again not needed since these are now resolved automatically.

Full Changelog: v8.0.1...v9.0.0