forge/roaster — pull request #13 by mrietveld (2014-04-16 08:28:37+00:00)
Title: JDK 1.6 compatibility changes

Changes necessary to create Java 6 compatible roaster artifacts.

What's a little weird is that the project still needs to be compiled using a Java **7** compiler. As far as I can tell, this is because the type variable least-upper bound logic (for classes like `AbstractGenericCapableJavaSource & PropertyHolderSource>`) in the Java 6 compiler can't deal with the recursive structure in roaster-impl created by classes like `JavaSource>`.

The Java 6 compiler will throw an OutOfMemoryError (complaining about either the GC Overhead limit or lack of heap space, depending on your options) with the top of the stack listing the `merge`, `intersect` and of course `lub` methods in `com.sun.tools.javac.code.Types`. The Java 7 compiler will quickly and happily complete.