1) My understanding was that Groovy version >= 1.7, we only generate V1_5 bytecode (major version = 49) and that's why we don't have JDK 1.4 builds anymore for these Groovy versions. Is that incorrect?
2) Even if our intention is to generate JDK 1.4-compliant code based on features (annotations, generics) being used in the Groovy code, I don't think it will ever do it in practice. The reason being that ResolveVisitor.resolveGenericsTypes() unconditionally sets usesGenerics = true on every classnode it processes. Due to that the bytecode being generated for class Outer in the example code of this issue is still V1_5 and not V1_3.
Am I misreading something?
Attaching a patch for review.