Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.5.2
-
None
-
jdk: oracle jdk 1.8.0_191
groovy: 2.5.2
os: windows
Description
I'm using groovyConsole to see the generated class code of the following two Groovy scripts:
process test{
output:
file 'output.txt' into b, c
"""
echo hello
"""
}
Here is its generated code snippet like below:
public java.lang.Object run() { this.process(this.test({ this.file('output.txt').into(b, c) '\n echo hello\n ' })) }
And here is the second script that differs from the previous one - this one uses parentheses in file() method invocation:
process test{
output:
file('output.txt') into b, c
"""
echo hello
"""
}
And this is generated code from the second script:
public java.lang.Object run() { process.test({ this.file('output.txt').into(b, c) '\n echo hello\n ' }) }
As you can see, process is no longer a function but a variable. It confuses me because I would expect that in both cases process should be seen as a function call. Is this an expected behavior? Do I miss something?