do not add null statement label
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 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 @@
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 @@
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;