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 2022/11/17 15:02:52 UTC

[groovy] branch master updated: SC: type reference for new call object expression

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

emilles 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 aadacf753f SC: type reference for new call object expression
aadacf753f is described below

commit aadacf753ff087246ef962afedba05e75e6f23ae
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Thu Nov 17 08:57:39 2022 -0600

    SC: type reference for new call object expression
---
 .../StaticMethodCallExpressionTransformer.java     | 38 +++++++++++-----------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/transform/sc/transformers/StaticMethodCallExpressionTransformer.java b/src/main/java/org/codehaus/groovy/transform/sc/transformers/StaticMethodCallExpressionTransformer.java
index 64231bb2c6..dfa6ea9642 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/transformers/StaticMethodCallExpressionTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/transformers/StaticMethodCallExpressionTransformer.java
@@ -23,29 +23,29 @@ import org.codehaus.groovy.ast.expr.ClassExpression;
 import org.codehaus.groovy.ast.expr.Expression;
 import org.codehaus.groovy.ast.expr.MethodCallExpression;
 import org.codehaus.groovy.ast.expr.StaticMethodCallExpression;
-import org.codehaus.groovy.transform.stc.StaticTypesMarker;
 
-public class StaticMethodCallExpressionTransformer {
+import static org.codehaus.groovy.transform.stc.StaticTypesMarker.DIRECT_METHOD_CALL_TARGET;
+
+class StaticMethodCallExpressionTransformer {
+
     private final StaticCompilationTransformer transformer;
 
-    public StaticMethodCallExpressionTransformer(final StaticCompilationTransformer staticCompilationTransformer) {
-        transformer = staticCompilationTransformer;
+    StaticMethodCallExpressionTransformer(final StaticCompilationTransformer sct) {
+        transformer = sct;
     }
 
-    Expression transformStaticMethodCallExpression(final StaticMethodCallExpression orig) {
-        MethodNode target = (MethodNode) orig.getNodeMetaData(StaticTypesMarker.DIRECT_METHOD_CALL_TARGET);
-        if (target != null) {
-            MethodCallExpression call = new MethodCallExpression(
-                    new ClassExpression(orig.getOwnerType()),
-                    orig.getMethod(),
-                    orig.getArguments()
-            );
-            call.setMethodTarget(target);
-            call.setSourcePosition(orig);
-            call.copyNodeMetaData(orig);
-            return transformer.transform(call);
+    Expression transformStaticMethodCallExpression(final StaticMethodCallExpression smce) {
+        Object target = smce.getNodeMetaData(DIRECT_METHOD_CALL_TARGET);
+        if (target instanceof MethodNode) {
+            ClassExpression receiver = new ClassExpression(smce.getOwnerType().getPlainNodeReference());
+            MethodCallExpression mce = new MethodCallExpression(receiver, smce.getMethod(), smce.getArguments());
+            mce.setMethodTarget((MethodNode) target);
+            mce.setSourcePosition(smce);
+            mce.copyNodeMetaData(smce);
+
+            return transformer.transform(mce);
         }
-        return transformer.superTransform(orig);
-    }
 
-}
\ No newline at end of file
+        return transformer.superTransform(smce);
+    }
+}