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/01/24 12:03:02 UTC

[groovy] 04/08: do not add null statement label

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

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

commit 0bbb154933d16446957f0c50380dbbe3ed386440
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Thu Jan 23 12:32:29 2020 -0600

    do not add null statement label
    
    (cherry picked from commit f7f6c33ed420033a023d2d1dd095d7157ce03d45)
---
 src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java b/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java
index 866d8cf..0a675f6 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java
@@ -40,6 +40,7 @@ import org.codehaus.groovy.ast.stmt.TryCatchStatement;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
 /**
  * Utility class to add return statements.
@@ -131,7 +132,9 @@ public class ReturnAdder {
         if (statement instanceof ExpressionStatement) {
             Expression expression = ((ExpressionStatement) statement).getExpression();
             ReturnStatement returnStatement = new ReturnStatement(expression);
-            returnStatement.setStatementLabel(statement.getStatementLabel());
+            Optional.ofNullable(statement.getStatementLabels()).ifPresent(labels -> {
+                labels.forEach(returnStatement::addStatementLabel);
+            });
             returnStatement.setSourcePosition(statement);
             listener.returnStatementAdded(returnStatement);
             return returnStatement;
@@ -191,7 +194,9 @@ public class ReturnAdder {
             BlockStatement blockStatement = (BlockStatement) statement;
             if (blockStatement.isEmpty()) {
                 ReturnStatement returnStatement = new ReturnStatement(ConstantExpression.NULL);
-                returnStatement.setStatementLabel(blockStatement.getStatementLabel());
+                Optional.ofNullable(blockStatement.getStatementLabels()).ifPresent(labels -> {
+                    labels.forEach(returnStatement::addStatementLabel);
+                });
                 returnStatement.setSourcePosition(blockStatement);
                 listener.returnStatementAdded(returnStatement);
                 return returnStatement;