Christopher,
> On 11. 4. 2025, at 15:55, Christopher Smith <[email protected]> wrote:
> I personally find it surprising and confusing that arguments are implicitly
> collected in method calls; I recently was baffled until I realized that the
> Map as a first argument was causing Groovy to group the leading arguments.
I am not sure what this means. What is a “leading argument”? Can you please
show an example? With my testing, nothing is grouped (unless one uses named
arguments, which of course go into that Map):
===
1052 ocs /tmp> <q.groovy
def foo(Map m=null, a, b, c) {
println "m:$m a:$a b:$b c:$c"
}
foo('Hi', 'there', '!')
1053 ocs /tmp> /usr/local/groovy-4.0.25/bin/groovy q
m:null a:Hi b:there c:!
1054 ocs /tmp>
===
> I appreciate Groovy's syntactic sugar for clear cases (such as trailing
> lambdas), but I would rather not have arguments collected if the signature
> isn't varargs.
Unless you limit your code by CompileStatic, that's technically impossible,
since normally caller does not (need to) know the signature of the receiver
until actually called.
All the best,
OC
> On Fri, Apr 11, 2025, 05:22 Paul King <[email protected]
> <mailto:[email protected]>> wrote:
> I think it is just the case that Java supports only a single value or
> array notation, so that's what we did too (just adapting to Groovy
> array/list notation).
>
> We have certainly had folks ask if we could also support the curly
> brace syntax but that clashes with a closure.
>
> It would be interesting to see whether it is a simple or ugly change
> at the grammar/early parsing level.
>
> Cheers, Paul.
>
> On Fri, Apr 11, 2025 at 7:19 PM Gianluca Sartori <[email protected]
> <mailto:[email protected]>> wrote:
> >
> > Hi folks,
> >
> > we use the following well known annotation in our Grails controllers:
> >
> > @Secured(['ROLE_USER', 'ROLE_OTHER'])
> >
> > I was wondering why we cannot write this instead:
> >
> > @Secured('ROLE_USER', 'ROLE_OTHER')
> >
> > like in method calls.
> >
> > To your knowledge is that a Groovy thing or it lies somewhere else?
> >
> > Cheers,
> > Gianluca Sartori
> >