You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by sh...@apache.org on 2016/03/18 13:28:13 UTC
groovy git commit: GROOVY-7758: GroovyCastException when both
@CompileStatic and @Newify are used (closes #294)
Repository: groovy
Updated Branches:
refs/heads/master 676db8463 -> 40e9c1e20
GROOVY-7758: GroovyCastException when both @CompileStatic and @Newify are used (closes #294)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/40e9c1e2
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/40e9c1e2
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/40e9c1e2
Branch: refs/heads/master
Commit: 40e9c1e2040efbc04471ae64117cd7609d059745
Parents: 676db84
Author: Shil Sinha <sh...@gmail.com>
Authored: Mon Mar 14 15:21:30 2016 -0400
Committer: Shil Sinha <sh...@apache.org>
Committed: Fri Mar 18 08:02:46 2016 -0400
----------------------------------------------------------------------
.../groovy/transform/NewifyASTTransformation.java | 1 +
.../groovy/transform/NewifyTransformTest.groovy | 18 ++++++++++++++++++
2 files changed, 19 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/40e9c1e2/src/main/org/codehaus/groovy/transform/NewifyASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/transform/NewifyASTTransformation.java b/src/main/org/codehaus/groovy/transform/NewifyASTTransformation.java
index 850e1b5..909b6ec 100644
--- a/src/main/org/codehaus/groovy/transform/NewifyASTTransformation.java
+++ b/src/main/org/codehaus/groovy/transform/NewifyASTTransformation.java
@@ -166,6 +166,7 @@ public class NewifyASTTransformation extends ClassCodeExpressionTransformer impl
Expression method = transform(mce.getMethod());
Expression object = transform(mce.getObjectExpression());
MethodCallExpression transformed = callX(object, method, args);
+ transformed.setImplicitThis(mce.isImplicitThis());
transformed.setSourcePosition(mce);
return transformed;
} else if (expr instanceof ClosureExpression) {
http://git-wip-us.apache.org/repos/asf/groovy/blob/40e9c1e2/src/test/org/codehaus/groovy/transform/NewifyTransformTest.groovy
----------------------------------------------------------------------
diff --git a/src/test/org/codehaus/groovy/transform/NewifyTransformTest.groovy b/src/test/org/codehaus/groovy/transform/NewifyTransformTest.groovy
index 154f3fd..b6d0255 100644
--- a/src/test/org/codehaus/groovy/transform/NewifyTransformTest.groovy
+++ b/src/test/org/codehaus/groovy/transform/NewifyTransformTest.groovy
@@ -157,4 +157,22 @@ class NewifyTransformTest extends GroovyShellTestCase {
'''
assert test == 'ABC'
}
+
+
+ void testNewifyClosureCompileStatic_Groovy7758() {
+ assertScript '''
+ class A {
+ String foo() { 'abc' }
+ }
+
+ @groovy.transform.CompileStatic
+ @Newify
+ String test(A arg) {
+ Closure<String> cl = { A it -> it.foo() }
+ cl.call(arg)
+ }
+
+ assert test(new A()) == 'abc'
+ '''
+ }
}
\ No newline at end of file