This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/master by this push:
     new b5ec006  GROOVY-9266: added closure annotations to 
DefaultGroovyMethods.metaClass
b5ec006 is described below

commit b5ec006fe3f656150d7e699308bc02a19d692a12
Author: Eric Milles <eric.mil...@thomsonreuters.com>
AuthorDate: Wed Oct 2 13:16:11 2019 -0500

    GROOVY-9266: added closure annotations to DefaultGroovyMethods.metaClass
    
    and ExpandoMetaClass.define
---
 src/main/java/groovy/lang/ExpandoMetaClass.java                     | 5 ++++-
 src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java | 6 ++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/main/java/groovy/lang/ExpandoMetaClass.java 
b/src/main/java/groovy/lang/ExpandoMetaClass.java
index 184345e..578fad1 100644
--- a/src/main/java/groovy/lang/ExpandoMetaClass.java
+++ b/src/main/java/groovy/lang/ExpandoMetaClass.java
@@ -18,6 +18,8 @@
  */
 package groovy.lang;
 
+import groovy.transform.stc.ClosureParams;
+import groovy.transform.stc.SimpleType;
 import org.codehaus.groovy.reflection.CachedClass;
 import org.codehaus.groovy.reflection.MixinInMetaClass;
 import org.codehaus.groovy.runtime.DefaultCachedMethodKey;
@@ -796,7 +798,8 @@ public class ExpandoMetaClass extends MetaClassImpl 
implements GroovyObject {
         }
     }
 
-    public ExpandoMetaClass define(Closure closure) {
+    public ExpandoMetaClass define(@ClosureParams(value=SimpleType.class, 
options="java.lang.Object")
+            @DelegatesTo(value=DefiningClosure.class, 
strategy=Closure.DELEGATE_ONLY) Closure closure) {
         final DefiningClosure definer = new DefiningClosure();
         Object delegate = closure.getDelegate();
         closure.setDelegate(definer);
diff --git 
a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java 
b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index dcdc945..69ec742 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -17753,7 +17753,8 @@ public class DefaultGroovyMethods extends 
DefaultGroovyMethodsSupport {
      * @throws GroovyRuntimeException if the metaclass can't be set for this 
class
      * @since 1.6.0
      */
-    public static MetaClass metaClass (Class self, Closure closure){
+    public static MetaClass metaClass(Class self, 
@ClosureParams(value=SimpleType.class, options="java.lang.Object")
+            @DelegatesTo(type="groovy.lang.ExpandoMetaClass.DefiningClosure", 
strategy=Closure.DELEGATE_ONLY) Closure closure) {
         MetaClassRegistry metaClassRegistry = 
GroovySystem.getMetaClassRegistry();
         MetaClass mc = metaClassRegistry.getMetaClass(self);
 
@@ -17800,7 +17801,8 @@ public class DefaultGroovyMethods extends 
DefaultGroovyMethodsSupport {
      * @throws GroovyRuntimeException if the metaclass can't be set for this 
object
      * @since 1.6.0
      */
-    public static MetaClass metaClass (Object self, Closure closure){
+    public static MetaClass metaClass(Object self, 
@ClosureParams(value=SimpleType.class, options="java.lang.Object")
+            @DelegatesTo(type="groovy.lang.ExpandoMetaClass.DefiningClosure", 
strategy=Closure.DELEGATE_ONLY) Closure closure) {
         MetaClass emc = hasPerInstanceMetaClass(self);
         if (emc == null) {
             final ExpandoMetaClass metaClass = new 
ExpandoMetaClass(self.getClass(), false, true);

Reply via email to