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

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

commit 0c7a6fe0c2f7f786a07b04719944a13923144084
Author: Daniel Sun <[email protected]>
AuthorDate: Mon Oct 5 04:40:58 2020 +0800

    GROOVY-8258: use lambda instead
---
 src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java  |  9 +++++++++
 .../groovy/org/apache/groovy/linq/LinqGroovyMethods.groovy     | 10 +++++-----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java 
b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
index 6abbe61..15e4db6 100644
--- a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
+++ b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java
@@ -43,6 +43,7 @@ import org.codehaus.groovy.ast.expr.ConstructorCallExpression;
 import org.codehaus.groovy.ast.expr.DeclarationExpression;
 import org.codehaus.groovy.ast.expr.Expression;
 import org.codehaus.groovy.ast.expr.FieldExpression;
+import org.codehaus.groovy.ast.expr.LambdaExpression;
 import org.codehaus.groovy.ast.expr.ListExpression;
 import org.codehaus.groovy.ast.expr.MapEntryExpression;
 import org.codehaus.groovy.ast.expr.MapExpression;
@@ -251,6 +252,14 @@ public class GeneralUtils {
         return closureX(Parameter.EMPTY_ARRAY, code);
     }
 
+    public static LambdaExpression lambdaX(final Parameter[] params, final 
Statement code) {
+        return new LambdaExpression(params, code);
+    }
+
+    public static LambdaExpression lambdaX(final Statement code) {
+        return lambdaX(Parameter.EMPTY_ARRAY, code);
+    }
+
     /**
      * Builds a binary expression that compares two values.
      *
diff --git 
a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.groovy
 
b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.groovy
index 71c3fe5..ad132e2 100644
--- 
a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.groovy
+++ 
b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/LinqGroovyMethods.groovy
@@ -32,7 +32,7 @@ import org.codehaus.groovy.macro.runtime.Macro
 import org.codehaus.groovy.macro.runtime.MacroContext
 
 import static org.codehaus.groovy.ast.tools.GeneralUtils.callX
-import static org.codehaus.groovy.ast.tools.GeneralUtils.closureX
+import static org.codehaus.groovy.ast.tools.GeneralUtils.lambdaX
 import static org.codehaus.groovy.ast.tools.GeneralUtils.param
 import static org.codehaus.groovy.ast.tools.GeneralUtils.params
 import static org.codehaus.groovy.ast.tools.GeneralUtils.stmt
@@ -93,20 +93,20 @@ class LinqGroovyMethods {
         selectMethodReceiver = from
 
         if (linqContext.whereList.size() > 0) {
-            MethodCallExpression where = callXWithClosure(from, "where", 
aliasVariable.name, linqContext.whereList[0])
+            MethodCallExpression where = callXWithLambda(from, "where", 
aliasVariable.name, linqContext.whereList[0])
             selectMethodReceiver = where
         }
 
-        MethodCallExpression select = callXWithClosure(selectMethodReceiver, 
"select", aliasVariable.name, linqContext.selectList[0])
+        MethodCallExpression select = callXWithLambda(selectMethodReceiver, 
"select", aliasVariable.name, linqContext.selectList[0])
 
         return select
     }
 
-    private static callXWithClosure(Expression receiver, String methodName, 
String closureParamName, Expression closureCode) {
+    private static callXWithLambda(Expression receiver, String methodName, 
String closureParamName, Expression closureCode) {
         callX(
                 receiver,
                 methodName,
-                closureX(
+                lambdaX(
                         params(param(ClassHelper.DYNAMIC_TYPE, 
closureParamName)),
                         stmt(closureCode)
                 )

Reply via email to