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

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


The following commit(s) were added to refs/heads/GROOVY-7785 by this push:
     new b8e01b53a0 Trivial refactor
b8e01b53a0 is described below

commit b8e01b53a0faa58a77d6d92c7be3e7b5f98c57ce
Author: Daniel Sun <[email protected]>
AuthorDate: Wed Feb 4 23:03:34 2026 +0900

    Trivial refactor
---
 .../groovy/classgen/asm/indy/InvokeDynamicWriter.java       | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git 
a/src/main/java/org/codehaus/groovy/classgen/asm/indy/InvokeDynamicWriter.java 
b/src/main/java/org/codehaus/groovy/classgen/asm/indy/InvokeDynamicWriter.java
index 74baaac51b..9b3ad71f6f 100644
--- 
a/src/main/java/org/codehaus/groovy/classgen/asm/indy/InvokeDynamicWriter.java
+++ 
b/src/main/java/org/codehaus/groovy/classgen/asm/indy/InvokeDynamicWriter.java
@@ -132,23 +132,18 @@ public class InvokeDynamicWriter extends InvocationWriter 
{
         // Collect chain of simple method calls that can use indy optimization
         Deque<MethodCallExpression> chain = new ArrayDeque<>();
         Expression current = receiver;
-        while (current instanceof MethodCallExpression mce
+        for (; current instanceof MethodCallExpression mce
                 && !mce.isSpreadSafe() && !mce.isImplicitThis()
                 && !isSuperExpression(mce.getObjectExpression())
-                && !isThisExpression(mce.getObjectExpression())) {
+                && !isThisExpression(mce.getObjectExpression()); current = 
mce.getObjectExpression()) {
             String name = getMethodName(mce.getMethod());
             if (name == null || "call".equals(name)) break; // dynamic name or 
functional interface call
             chain.push(mce);
-            current = mce.getObjectExpression();
         }
 
-        if (chain.isEmpty()) {
-            receiver.visit(controller.getAcg());
-            return;
-        }
-
-        current.visit(controller.getAcg());
         AsmClassGenerator acg = controller.getAcg();
+        current.visit(acg);
+
         while (!chain.isEmpty()) {
             MethodCallExpression call = chain.pop();
             acg.onLineNumber(call, "visitMethodCallExpression: \"" + 
call.getMethod() + "\":");

Reply via email to