[ 
https://issues.apache.org/jira/browse/GROOVY-7956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul King resolved GROOVY-7956.
-------------------------------
       Resolution: Fixed
         Assignee: Paul King
    Fix Version/s: 2.5.0-beta-3

I am still working on some more tests and doco but the basic functionality is 
there. We still need to do more for the static type checking side of things but 
that can be done as a separate issue.

> Provide an AST transformation which improves named parameter support
> --------------------------------------------------------------------
>
>                 Key: GROOVY-7956
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7956
>             Project: Groovy
>          Issue Type: New Feature
>          Components: GEP
>            Reporter: Graeme Rocher
>            Assignee: Paul King
>            Priority: Major
>             Fix For: 2.5.0-beta-3
>
>
> In order to aid static compilation for builders we have {{@DelegatesTo}} 
> which allows statically compiled code to know what the delegate of a closure 
> is.
> This proposal is to allow {{@DelegatesTo}} on {{Map}} types such that IDEs 
> and the static compiler can resolve the target type the named arguments are 
> to be used on.
> For example:
> {code}
> class Farm {
>      void animal(@DelegatesTo(Animal) Map arguments, 
> @DelegatesTo(AnimalBuilder) Closure callable) {
>              def animal = new Animal(arguments)
>              // handle closure
>     }
> } 
> class Animal { String name }
> {code}
> The following code would then fail to compile :
> {code}
> def farm = new Farm()
> // compilation failure, no name property on Animal
> farm.animal(nam: "Dog")  { 
> }
> {code}
> It would then be down to IDEs to also provide support for code completion etc.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to