Specifically, using as custom logger topic a concatenated string, like literally `"A" + "B"`. It works,
but depending on javac and phase of the moon that ends up as `"A" + "B"` or `"AB"`, and I don't
think it's worthwhile for lombok to try to be consistent in this and test for that.
javac8 has a bizarre dependency situation: we need the stubs in src/stubs there to compile, but if they are there
at runtime during a test run of javac8, they take precedence over the JDK's javac (because we include this
as a separate cp entry, and thus it is not a bootclasspath item), and messes everything up.
The fix is to tell eclipse to compile various src/X folders to different 'bin' targets, which required
an update to ivyplusplus as well.
also it was just broken in general, fixed that too :)
We now test generating a level2-DOM from our level1-AST (eclipse has 3 levels of ASTs, more or less), only if
that is possible, i.e. only if the full eclipse is available. This requires using a test target named `eclipse-X`, and not
one of the `ecjX` ones. This is the change that requires the massive update to the build system. About 6 tests,
including a newly added one about @Delegate, now fail. These failures would usually not cause instant failure in
eclipse, but can cause errors during save actions and will likely mess with other things in weird ways, such as
messing up syntax highlighting.
Yes, this commit now makes a bunch of cases fail the unit tests, but that is representative of actual errors in lombok,
so I'm checking it in as is (without this commit, the problem is still there, the tests are just incapable of detecting it).
Until recently, we'd 'resolve' LUB (compound) types in val constructs by just taking the first one in the line of interfaces. The problem is, different versions of different compilers use different orderings. In an earlier commit, the eclipse impl gained a new algorithm that is more stable, e.g. by sorting on alphabet. now the javac side has the same algorithm.