The parser seems to be interpreting what you mean as a ternary as a null-safe array index.
On Thu, Sep 8, 2022, 08:37 o...@ocs.cz <o...@ocs.cz> wrote: > Hi there, > > I've just decided it's time to upgrade from Groovy 3 to Groovy 4... and > immediately bumped into a problem, which looks like a parser bug in an > extremely trivial scenario, which seems weird. > > Do I perhaps miss something? I've checked > https://groovy-lang.org/releasenotes/groovy-4.0.html#Groovy4.0-breaking, > but in vain :( > > === > 2012 ocs /tmp> <q.groovy > def p > def x=p?[0]:[1] > println "got $x" > 2013 ocs /tmp> /usr/local/groovy-3.0.12/bin/groovy q > got [1] > 2014 ocs /tmp> /usr/local/groovy-4.0.4/bin/groovy q > org.codehaus.groovy.control.MultipleCompilationErrorsException: startup > failed: > /private/tmp/q.groovy: 2: Unexpected input: ':' @ line 2, column 12. > def x=p?[0]:[1] > ^ > > 1 error > > 2015 ocs /tmp> > === > > Thanks for any insight, > OC > >