You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2019/10/02 18:16:39 UTC
[groovy] branch GROOVY-9266 created (now e375d8e)
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a change to branch GROOVY-9266
in repository https://gitbox.apache.org/repos/asf/groovy.git.
at e375d8e GROOVY-9266: added closure annotations to DefaultGroovyMethods.metaClass
This branch includes the following new commits:
new e375d8e GROOVY-9266: added closure annotations to DefaultGroovyMethods.metaClass
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[groovy] 01/01: GROOVY-9266: added closure annotations to
DefaultGroovyMethods.metaClass
Posted by em...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch GROOVY-9266
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit e375d8eefdf21af88736d06f907a53b0c4eb746f
Author: Eric Milles <er...@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);