You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2017/10/01 21:08:51 UTC

[1/2] groovy git commit: GROOVY-8326: @Override should not copied onto methods generated by applying @Memoize (closes #610)

Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_4_X 7f9180faf -> fac75d609


GROOVY-8326: @Override should not copied onto methods generated by applying @Memoize (closes #610)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/694be97a
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/694be97a
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/694be97a

Branch: refs/heads/GROOVY_2_4_X
Commit: 694be97a3f674a93f4bff0dc142d02ff32ad0ef3
Parents: 7f9180f
Author: John Wagenleitner <jw...@apache.org>
Authored: Sat Sep 30 21:06:49 2017 -0700
Committer: paulk <pa...@asert.com.au>
Committed: Mon Oct 2 07:08:22 2017 +1000

----------------------------------------------------------------------
 .../transform/MemoizedASTTransformation.java    | 14 ++++++++--
 .../MemoizedASTTransformationTest.groovy        | 28 +++++++++++++++++++-
 2 files changed, 39 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/694be97a/src/main/org/codehaus/groovy/transform/MemoizedASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/transform/MemoizedASTTransformation.java b/src/main/org/codehaus/groovy/transform/MemoizedASTTransformation.java
index 5adc68d..6bca46c 100644
--- a/src/main/org/codehaus/groovy/transform/MemoizedASTTransformation.java
+++ b/src/main/org/codehaus/groovy/transform/MemoizedASTTransformation.java
@@ -67,6 +67,7 @@ public class MemoizedASTTransformation extends AbstractASTTransformation {
     private static final String MAX_CACHE_SIZE_NAME = "maxCacheSize";
     private static final String CLOSURE_LABEL = "Closure";
     private static final String METHOD_LABEL = "Priv";
+    private static final ClassNode OVERRIDE_CLASSNODE = make(Override.class);
 
     public void visit(ASTNode[] nodes, final SourceUnit source) {
         init(nodes, source);
@@ -127,11 +128,20 @@ public class MemoizedASTTransformation extends AbstractASTTransformation {
                 annotatedMethod.getExceptions(),
                 code
         );
-        List<AnnotationNode> sourceAnnotations = annotatedMethod.getAnnotations();
-        method.addAnnotations(new ArrayList<AnnotationNode>(sourceAnnotations));
+        method.addAnnotations(filterAnnotations(annotatedMethod.getAnnotations()));
         return method;
     }
 
+    private static List<AnnotationNode> filterAnnotations(List<AnnotationNode> annotations) {
+        List<AnnotationNode> result = new ArrayList<AnnotationNode>(annotations.size());
+        for (AnnotationNode annotation : annotations) {
+            if (!OVERRIDE_CLASSNODE.equals(annotation.getClassNode())) {
+                result.add(annotation);
+            }
+        }
+        return result;
+    }
+
     private static final String MEMOIZE_METHOD_NAME = "memoize";
     private static final String MEMOIZE_AT_MOST_METHOD_NAME = "memoizeAtMost";
     private static final String MEMOIZE_AT_LEAST_METHOD_NAME = "memoizeAtLeast";

http://git-wip-us.apache.org/repos/asf/groovy/blob/694be97a/src/test/org/codehaus/groovy/transform/MemoizedASTTransformationTest.groovy
----------------------------------------------------------------------
diff --git a/src/test/org/codehaus/groovy/transform/MemoizedASTTransformationTest.groovy b/src/test/org/codehaus/groovy/transform/MemoizedASTTransformationTest.groovy
index e75138d..bc59f30 100644
--- a/src/test/org/codehaus/groovy/transform/MemoizedASTTransformationTest.groovy
+++ b/src/test/org/codehaus/groovy/transform/MemoizedASTTransformationTest.groovy
@@ -193,6 +193,32 @@ class MemoizedASTTransformationTest extends GroovyTestCase {
         assertEquals(MemoizedTestClass.privateStaticMethodWithParams(20, 5), 15)
         assertEquals(MemoizedTestClass.privateStaticMethodWithParamsCounter, 3)
     }
+
+    void testMemoizedAIC_Groovy8043() {
+        assertScript '''
+            class A {}
+            assert new A() {
+                @groovy.transform.Memoized()
+                String a() {
+                    return "a"
+                }
+            }.a() == 'a'
+        '''
+    }
+
+    // GROOVY-8326
+    void testMemoizedMethodWithOverrideAnnotation() {
+        assertScript '''
+            class A {            
+                @groovy.transform.Memoized
+                @Override
+                String toString() {
+                    'an expensive toString operation'
+                }
+            }
+            assert new A().toString() == 'an expensive toString operation'
+        '''
+    }
 }
 
 class MemoizedTestClass2 {
@@ -365,4 +391,4 @@ class MemoizedTestClass3 {
         privateStaticMethodWithParamsCounter++
         n - m
     }
-}
\ No newline at end of file
+}


[2/2] groovy git commit: Fix wildcard arg handling in startGroovy.bat (closes #507)

Posted by pa...@apache.org.
Fix wildcard arg handling in startGroovy.bat (closes #507)

Signed-off-by: Aarjav Patel


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/fac75d60
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/fac75d60
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/fac75d60

Branch: refs/heads/GROOVY_2_4_X
Commit: fac75d609b5f575068fa8b7d418cf676bb039336
Parents: 694be97
Author: AarjavP <Aa...@users.noreply.github.com>
Authored: Wed Aug 30 17:39:44 2017 +0200
Committer: paulk <pa...@asert.com.au>
Committed: Mon Oct 2 07:08:37 2017 +1000

----------------------------------------------------------------------
 src/bin/startGroovy.bat | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/fac75d60/src/bin/startGroovy.bat
----------------------------------------------------------------------
diff --git a/src/bin/startGroovy.bat b/src/bin/startGroovy.bat
index b1e8a3e..3d5a534 100644
--- a/src/bin/startGroovy.bat
+++ b/src/bin/startGroovy.bat
@@ -177,7 +177,7 @@ for /f "tokens=1,*" %%i in (%_ARGS%) do call :get_arg "%%i" "%%j"
 goto process_arg
 
 :get_arg
-rem remove quotes around first arg
+rem remove quotes around first arg and don't expand wildcards
 for /f %%i in (%1) do set _ARG=%_ARG% %%~i
 rem set the remaining args
 set _ARGS=%2