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