groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From MG <mg...@arscreat.com>
Subject Re: Groovy 3.0: Multiline list/map arguments
Date Fri, 06 Apr 2018 19:21:02 GMT
My suggestion was not to consider allowing any whitespace to break 
syntax ambiguity here, but only a newline after the opening square 
bracket, i.e.:

// Still does not compile
final result = foo [ "some rather long literal string argument",
     "another long literal string argument",
     "and so on and so forth...",
]

// Parsed as foo([ ... ])  (not foo-index-access)
final result = foo [
      "some rather long literal string argument",
     "another long literal string argument",
     "and so on and so forth...",
]

If the parser can do it, it would feel Groovy to me to allow it for this 
use case (Of course it could still mean "index access", but how many 
people would really write an index access on foo that way ?).

Groovy 3.0 is the place to ponder such questions, imho, because breaking 
changes will come anyway afaiks (Java 9 modules), so you do it here, or 
not for a long time...

Would be interested what others think, or if someone has a counter 
example that makes it clear it is a bad idea to go down that route,
mg


On 06.04.2018 19:49, Daniel.Sun wrote:
> Hi mg,
>
>        It's dangerous to let blank characters determine the grammar, which is
> the lesson learned from Ruby ;-)
>
> ```ruby
> def f(p)
>    return p * 2
> end
>
> f(3+2)+1     #  11
> f (3+2)+1    #  12,  have you seen the space between `f` and `(`  ?
> ```
> (you can try the above code at http://tryruby.org)
>
> Cheers,
> Daniel.Sun
>
>
>
> --
> Sent from: http://groovy.329449.n5.nabble.com/Groovy-Users-f329450.html
>


Mime
View raw message