[DRAFT] Apache Groovy May 2020 Board Report (reporting on Feb/Mar/Apr)

2020-05-07 Thread Paul King
Hi Everyone, Any other updates/comments before I submit our latest board report? (Due in a few days) Thanks, Paul. ===>8== ## Description: Apache Groovy is responsible for the evolution and maintenance of the Groovy programming language. Groovy is a multi-faceted JVM pro

About eliminating ambiguities safe indexing and ternary expression

2020-05-07 Thread Daniel.Sun
Hi all, Safe indexing has been introduced since Groovy 3.0.0, it is useful but confuses both parser and users sometimes because it is not a real operator in order to not breaking existing code as possible as we could. For example, ``` // https://issues.apache.org/jira/browse/GROOVY-9522 def a

Re: About eliminating ambiguities safe indexing and ternary expression

2020-05-07 Thread J. David Beutel
On 2020-05-07 13:43 , Daniel.Sun wrote: ``` // https://issues.apache.org/jira/browse/GROOVY-9522 def a() { null } def b() { '' } a()?[b(), a()].join(','):b() // statement with ambiguities ``` The above statement with ambiguities can be parsed into: 1) safe indexing expression, `a()?[[b(), a()

Re: About eliminating ambiguities safe indexing and ternary expression

2020-05-07 Thread Jochen Theodorou
On 08.05.20 04:36, J. David Beutel wrote: [...] but how does the .join(','):b() part get parsed into .join([',': b()])? write it like this: foo.bar x:y where x is (','), y is b() and bar is join. And this is equal to (thanks to optional parentheses): foo.bar([x:y]) bye Jochen

Re: About eliminating ambiguities safe indexing and ternary expression

2020-05-07 Thread Daniel.Sun
Yep ;-) Optional parentheses is nice to DSL but introduces some ambiguities too :-( Cheers, Daniel Sun - Apache Groovy committer & PMC member Blog: http://blog.sunlan.me Twitter: @daniel_sun -- Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html