You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@groovy.apache.org by Paul King <pa...@asert.com.au> on 2016/06/24 22:01:53 UTC

GenericsVisitor change for Groovy 2.5.0

Hi everyone,

I moved the GenericsVisitor earlier in the compilation process. This
means that errors involving class usage but supplying an incorrect
number of type parameters, e.g. List<Integer, Date, String> or
HashMap<Long> or invalid Diamond operator usage will now be flagged
earlier. This is nice because we had other parts of the compiler which
used to run prior to the generics visitor that assumed that such
information was correct and would fail with an
ArrayIndexOutOfBoundsException. In those circumstances we now get a
nicer error message.

The flip side is that if anyone had a DSL that relied on such invalid
syntax and had a transform that corrected the errors that ran in the
early stages of the compiler, then it will likely now run after the
GenericsVisitor which means the error will already be flagged. I am
not aware of any such usage of invalid Groovy syntax being relied upon
but if anyone is in that position, now is the time to let us know. You
can still use a global transform but there might be other workarounds
possible if you let us know the circumstances.

For further details see:

https://issues.apache.org/jira/browse/GROOVY-7865

Cheers, Paul.