You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2020/10/06 14:46:24 UTC

[groovy] branch GROOVY-8258 updated: GROOVY-8258: eliminate redundant metadata keys

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


The following commit(s) were added to refs/heads/GROOVY-8258 by this push:
     new d4d6a22  GROOVY-8258: eliminate redundant metadata keys
d4d6a22 is described below

commit d4d6a2274709aa03ae903e9e80a88edea80ab4c6
Author: Daniel Sun <su...@apache.org>
AuthorDate: Tue Oct 6 22:46:02 2020 +0800

    GROOVY-8258: eliminate redundant metadata keys
---
 .../apache/groovy/linq/dsl/GinqAstWalker.groovy    | 29 ++++++++++------------
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy
index 6038e95..4707bd4 100644
--- a/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy
+++ b/subprojects/groovy-linq/src/main/groovy/org/apache/groovy/linq/dsl/GinqAstWalker.groovy
@@ -61,10 +61,10 @@ class GinqAstWalker implements GinqVisitor<Object> {
         List<MethodCallExpression> innerJoinMethodCallExpressionList = new LinkedList<>()
         List<JoinExpression> joinExpressionList = simpleGinqExpression.getJoinExpressionList()
         for (JoinExpression joinExpression : joinExpressionList) {
-            joinExpression.putNodeMetaData(__INNER_JOIN_METHOD_RECEIVER, fromMethodCallExpression)
-            joinExpression.putNodeMetaData(__RECEIVER_ALIAS_EXPR, fromExpression.aliasExpr)
+            joinExpression.putNodeMetaData(__METHOD_CALL_RECEIVER, fromMethodCallExpression)
+            joinExpression.putNodeMetaData(__ALIAS_EXPR, fromExpression.aliasExpr)
             MethodCallExpression methodCallExpression = this.visitInnerJoinExpression((InnerJoinExpression) joinExpression)
-            innerJoinMethodCallExpressionList.add(methodCallExpression);
+            innerJoinMethodCallExpressionList.add(methodCallExpression)
         }
 
         if (innerJoinMethodCallExpressionList) {
@@ -72,12 +72,11 @@ class GinqAstWalker implements GinqVisitor<Object> {
         }
 
         SelectExpression selectExpression = simpleGinqExpression.getSelectExpression()
-        selectExpression.putNodeMetaData(__SELECT_METHOD_RECEIVER, selectMethodReceiver)
+        selectExpression.putNodeMetaData(__METHOD_CALL_RECEIVER, selectMethodReceiver)
 
         if (joinExpressionList) {
             JoinExpression lastJoinExpression = joinExpressionList.get(joinExpressionList.size() - 1)
-            selectExpression.putNodeMetaData(__FIRST_ALIAS_EXPR, lastJoinExpression.getNodeMetaData(__RECEIVER_ALIAS_EXPR))
-            selectExpression.putNodeMetaData(__SECOND_ALIAS_EXPR, lastJoinExpression.aliasExpr)
+            selectExpression.putNodeMetaData(__LAST_JOIN_EXPRESSION, lastJoinExpression)
 
             selectExpression.putNodeMetaData(__ALIAS_EXPR, new VariableExpression(__T))
         } else {
@@ -107,8 +106,8 @@ class GinqAstWalker implements GinqVisitor<Object> {
 
     @Override
     MethodCallExpression visitInnerJoinExpression(InnerJoinExpression innerJoinExpression) {
-        Expression receiver = innerJoinExpression.getNodeMetaData(__INNER_JOIN_METHOD_RECEIVER)
-        Expression receiverAliasExpr = innerJoinExpression.getNodeMetaData(__RECEIVER_ALIAS_EXPR)
+        Expression receiver = innerJoinExpression.getNodeMetaData(__METHOD_CALL_RECEIVER)
+        Expression receiverAliasExpr = innerJoinExpression.getNodeMetaData(__ALIAS_EXPR)
         OnExpression onExpression = (OnExpression) innerJoinExpression.getFilterExpression()
         MethodCallExpression innerJoinMethodCallExpression = constructInnerJoinMethodCallExpression(receiver, receiverAliasExpr, innerJoinExpression, onExpression)
 
@@ -155,7 +154,7 @@ class GinqAstWalker implements GinqVisitor<Object> {
 
     @Override
     MethodCallExpression visitSelectExpression(SelectExpression selectExpression) {
-        Expression selectMethodReceiver = selectExpression.getNodeMetaData(__SELECT_METHOD_RECEIVER)
+        Expression selectMethodReceiver = selectExpression.getNodeMetaData(__METHOD_CALL_RECEIVER)
         Expression aliasExpr = selectExpression.getNodeMetaData(__ALIAS_EXPR)
         Expression projectionExpr = selectExpression.getProjectionExpr()
 
@@ -175,8 +174,9 @@ class GinqAstWalker implements GinqVisitor<Object> {
     }
 
     private Expression correctVariablesOfProjectExpression(SelectExpression selectExpression, Expression projectionExpr) {
-        final Expression firstAliasExpr = selectExpression.getNodeMetaData(__FIRST_ALIAS_EXPR)
-        final Expression secondAliasExpr = selectExpression.getNodeMetaData(__SECOND_ALIAS_EXPR)
+        final JoinExpression lastJoinExpression = selectExpression.getNodeMetaData(__LAST_JOIN_EXPRESSION)
+        final Expression firstAliasExpr = lastJoinExpression.getNodeMetaData(__ALIAS_EXPR)
+        final Expression secondAliasExpr = lastJoinExpression.aliasExpr
 
         projectionExpr = projectionExpr.transformExpression(new ExpressionTransformer() {
             @Override
@@ -230,11 +230,8 @@ class GinqAstWalker implements GinqVisitor<Object> {
 
     private static final String __FROM_EXPRESSION = "__fromExpression"
     private static final String __FROM_METHOD_CALL_EXPRESSION = "__fromMethodCallExpression"
+    private static final String __LAST_JOIN_EXPRESSION = "__lastJoinExpression"
     private static final String __ALIAS_EXPR = "__aliasExpr"
-    private static final String __RECEIVER_ALIAS_EXPR = "__receiverAliasExpr"
-    private static final String __INNER_JOIN_METHOD_RECEIVER = "__innerJoinMethodReceiver"
+    private static final String __METHOD_CALL_RECEIVER = "__methodCallReceiver"
     private static final String __T = "__t"
-    private static final String __FIRST_ALIAS_EXPR = "__firstAliasExpr"
-    private static final String __SECOND_ALIAS_EXPR = "__secondAliasExpr"
-    private static final String __SELECT_METHOD_RECEIVER = "__selectMethodReceiver"
 }