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 2018/09/20 05:34:59 UTC

groovy git commit: GROOVY-8495: GroovyObject method implementations are marked with ACC_SYNTHETIC (partial revert)

Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_5_X 79d4b9788 -> fb125e42c


GROOVY-8495: GroovyObject method implementations are marked with ACC_SYNTHETIC (partial revert)


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

Branch: refs/heads/GROOVY_2_5_X
Commit: fb125e42cf188ac98dc05d0b2188a72bad107ec3
Parents: 79d4b97
Author: Paul King <pa...@asert.com.au>
Authored: Thu Sep 20 15:15:00 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Thu Sep 20 15:15:00 2018 +1000

----------------------------------------------------------------------
 src/main/java/org/codehaus/groovy/classgen/Verifier.java | 11 ++++++-----
 src/test/groovy/bugs/Groovy3175_Bug.groovy               |  8 ++++++--
 .../src/test/groovy/groovy/ant/Groovy8496Test.groovy     |  3 +++
 .../src/test/groovy/groovy/ant/Groovy8497Test.groovy     |  3 +++
 4 files changed, 18 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/fb125e42/src/main/java/org/codehaus/groovy/classgen/Verifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/Verifier.java b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
index 31a2be2..babae32 100644
--- a/src/main/java/org/codehaus/groovy/classgen/Verifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
@@ -84,6 +84,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import static java.lang.reflect.Modifier.isAbstract;
 import static java.lang.reflect.Modifier.isFinal;
 import static java.lang.reflect.Modifier.isPrivate;
 import static java.lang.reflect.Modifier.isPublic;
@@ -411,7 +412,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
 
         if (!node.hasMethod("getMetaClass", Parameter.EMPTY_ARRAY)) {
             metaClassField = setMetaClassFieldIfNotExists(node, metaClassField);
-            MethodNode methodNode = addMethod(node, !shouldAnnotate,
+            MethodNode methodNode = addMethod(node, !isAbstract(node.getModifiers()),
                     "getMetaClass",
                     ACC_PUBLIC,
                     ClassHelper.METACLASS_TYPE,
@@ -482,7 +483,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
                 setMetaClassCode = new BytecodeSequence(list);
             }
 
-            MethodNode methodNode = addMethod(node, !shouldAnnotate,
+            MethodNode methodNode = addMethod(node, !isAbstract(node.getModifiers()),
                     "setMetaClass",
                     ACC_PUBLIC, ClassHelper.VOID_TYPE,
                     SET_METACLASS_PARAMS, ClassNode.EMPTY_ARRAY,
@@ -501,7 +502,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
             blockScope.putReferencedLocalVariable(vMethods);
             blockScope.putReferencedLocalVariable(vArguments);
 
-            MethodNode methodNode = addMethod(node, !shouldAnnotate,
+            MethodNode methodNode = addMethod(node, !isAbstract(node.getModifiers()),
                     "invokeMethod",
                     ACC_PUBLIC,
                     ClassHelper.OBJECT_TYPE, INVOKE_METHOD_PARAMS,
@@ -525,7 +526,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
         }
 
         if (!node.hasMethod("getProperty", GET_PROPERTY_PARAMS)) {
-            MethodNode methodNode = addMethod(node, !shouldAnnotate,
+            MethodNode methodNode = addMethod(node, !isAbstract(node.getModifiers()),
                     "getProperty",
                     ACC_PUBLIC,
                     ClassHelper.OBJECT_TYPE,
@@ -549,7 +550,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
         }
 
         if (!node.hasMethod("setProperty", SET_PROPERTY_PARAMS)) {
-            MethodNode methodNode = addMethod(node, !shouldAnnotate,
+            MethodNode methodNode = addMethod(node, !isAbstract(node.getModifiers()),
                     "setProperty",
                     ACC_PUBLIC,
                     ClassHelper.VOID_TYPE,

http://git-wip-us.apache.org/repos/asf/groovy/blob/fb125e42/src/test/groovy/bugs/Groovy3175_Bug.groovy
----------------------------------------------------------------------
diff --git a/src/test/groovy/bugs/Groovy3175_Bug.groovy b/src/test/groovy/bugs/Groovy3175_Bug.groovy
index 07e6c7d..b96645a 100644
--- a/src/test/groovy/bugs/Groovy3175_Bug.groovy
+++ b/src/test/groovy/bugs/Groovy3175_Bug.groovy
@@ -23,6 +23,7 @@ class Groovy3175_Bug extends GroovyTestCase {
     void testSyntheticModifier() {
         assertScript """
         import groovy.transform.Generated
+        import groovy.transform.Internal
 
         class MyService {
             private fio
@@ -30,12 +31,15 @@ class Groovy3175_Bug extends GroovyTestCase {
             def something() { }
             def anotherSomething() { assert true }
         }
+
         def fields = MyService.getDeclaredFields().grep { !it.synthetic }
         assert fields.size() == 2
         def methods = MyService.getDeclaredMethods().grep { !it.synthetic }
-        assert methods.size() == 9
+        assert methods.size() == 4 // two explicit plus getter/setter
+        methods = methods.grep { !it.getAnnotation(Internal) }
+        assert methods.size() == 4 // two explicit plus getter/setter
         methods = methods.grep { !it.getAnnotation(Generated) }
-        assert methods.size() == 2
+        assert methods.size() == 2 // two explicit
         """
     }
 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/fb125e42/subprojects/groovy-ant/src/test/groovy/groovy/ant/Groovy8496Test.groovy
----------------------------------------------------------------------
diff --git a/subprojects/groovy-ant/src/test/groovy/groovy/ant/Groovy8496Test.groovy b/subprojects/groovy-ant/src/test/groovy/groovy/ant/Groovy8496Test.groovy
index 981c0a0..d9b764b 100644
--- a/subprojects/groovy-ant/src/test/groovy/groovy/ant/Groovy8496Test.groovy
+++ b/subprojects/groovy-ant/src/test/groovy/groovy/ant/Groovy8496Test.groovy
@@ -18,7 +18,10 @@
  */
 package groovy.ant
 
+import groovy.transform.NotYetImplemented
+
 class Groovy8496Test extends AntTestCase {
+    @NotYetImplemented
     void testGetProperty() {
 //        def debugLogger = new org.apache.tools.ant.DefaultLogger()
 //        debugLogger.setMessageOutputLevel(4)

http://git-wip-us.apache.org/repos/asf/groovy/blob/fb125e42/subprojects/groovy-ant/src/test/groovy/groovy/ant/Groovy8497Test.groovy
----------------------------------------------------------------------
diff --git a/subprojects/groovy-ant/src/test/groovy/groovy/ant/Groovy8497Test.groovy b/subprojects/groovy-ant/src/test/groovy/groovy/ant/Groovy8497Test.groovy
index 1991c2d..2e0a9ff 100644
--- a/subprojects/groovy-ant/src/test/groovy/groovy/ant/Groovy8497Test.groovy
+++ b/subprojects/groovy-ant/src/test/groovy/groovy/ant/Groovy8497Test.groovy
@@ -18,7 +18,10 @@
  */
 package groovy.ant
 
+import groovy.transform.NotYetImplemented
+
 class Groovy8497Test extends AntTestCase {
+    @NotYetImplemented
     void testGetProperty() {
 //        def debugLogger = new org.apache.tools.ant.DefaultLogger()
 //        debugLogger.setMessageOutputLevel(4)