Leonard Brünings created GROOVY-10561:
-----------------------------------------
Summary: @NamedVariant self referential default values are not
correctly resolved
Key: GROOVY-10561
URL: https://issues.apache.org/jira/browse/GROOVY-10561
Project: Groovy
Issue Type: Bug
Affects Versions: 4.0.1, 3.0.10, 2.5.16
Reporter: Leonard Brünings
If a default parameter refers to another parameter ( {{String language =
'java', String extension = language}} ) it will fail, when the named variant is
used.
{code:groovy}
import groovy.transform.NamedVariant
class Demo {
@NamedVariant
String fileInSourceSet(String language = 'java', String extension =
language) {
return "$language -> .$extension"
}
def test() {
assert fileInSourceSet() == 'java -> .java'
assert fileInSourceSet('groovy') == 'groovy -> .groovy'
assert fileInSourceSet(language: 'kotlin', extension: 'kt') ==
'kotlin -> .kt'
// fails
assert fileInSourceSet(language: 'groovy') == 'groovy ->
.groovy'
}
static main(args) {
new Demo().test()
}
}
{code}
See on
[WebConsole|https://gwc-experiment.appspot.com/?g=groovy_3_0&codez=eJyNUU1rwzAMPTe_QpRCEujS-6Bjh1126SWwu0iV4C2Wh610G6P_ff5KWAtl00HgJ72nJ1npd2MFBmvM6asRi-x6Y3VzQE3HF7QKWYqiG9E5eCJt4LsAH48X9YC0YhUP0KuRnrk1k-2oJakyPCIPEw4Eeyhf8YTldibQpxA7ZdiX5q46TwlhSSbLsN4sEncP0GwW2jp2nmOO6Ug9CDmpgspq5Y2TX_DaVw37bCXqRU-3u8t0nzKx0iPyMn6bObu-h_LNyKjYb754D6Bk0VSNoh5b1t_toEc1un9N-Mvl1aWcoKgONCqu0A7u99lDMH3EP6_qJh80KUSBc1FcNP8AgUKxrg]
(as long as deployed version is 3.0.10)
{noformat}
groovy.lang.MissingPropertyException: No such property: language for class: Demo
at Demo.fileInSourceSet(Script1.groovy)
at Demo$fileInSourceSet$2.callCurrent(Unknown Source)
at Demo.test(Script1.groovy:14)
at Demo$test.call(Unknown Source)
at Demo.main(Script1.groovy:18)
{noformat}
Relates to GROOVY-10261
--
This message was sent by Atlassian Jira
(v8.20.1#820001)