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

Paul King updated GROOVY-10502:
-------------------------------
    Reporter: Paul King  (was: Eric Milles)

> NamedVariant: improve consistency of default value treatment
> ------------------------------------------------------------
>
>                 Key: GROOVY-10502
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10502
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 4.0.0
>            Reporter: Paul King
>            Priority: Major
>              Labels: named-parameters
>
> When adjusting NamedVariant to cater for its use (under the covers) for 
> records, a few anomalies were introduced. The first is fixed in GROOVY-10497. 
> This one covers a left over case for null.
> For this method:
> {code:groovy}
> def x(int one, int two = 42) { "$one $two" }
> {code}
> Calling any of the following will fail with a MissingMethodException:
> {code:groovy}
> x(null)
> x(null, 3)
> x(3, null)
> {code}
> When NamedVariant is applied, e.g.
> {code:groovy}
> @groovy.transform.NamedVariant
> def m(int one, int two = 42) { "$one $two" }
> {code}
> Then all of the following succeed:
> {code:groovy}
> m(one:null) // 0 42
> m(one:null, two:null) // 0 42
> m(one:32, two:null) // 32 42
> m(one:null, two:52) // 0 52
> {code}
> When null is encountered, we supply either the explicit or implicit default 
> value.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to