Daniel, > On 9. 9. 2022, at 1:30, Daniel Sun <sun...@apache.org> wrote: > Add a space between ? and [ > p ? [0] : [1]
Well thanks, but that really helps with new code only. On the other hand, with the existing codebase it is a royal PITA. Can't do that automatically, for I am afraid no regexp could reliably distinguish a real safe index from a ternary which returns a list or a map (actually, yesterday I've done this manually in one smaller project so that I can test Groovy 4 further — and even doing it manually I've made two mistakes of this kind). All the best, OC > On 2022/09/08 13:39:21 Christopher Smith wrote: >> 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 >>> >>> >>