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
removednameTypeInferrer
because, since all names are qualified before inference, now onlyselectTypeInferrer
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