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

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

commit ffbb3e91a4971f114889e856172a1128c74b1ced
Author: Eric Milles <[email protected]>
AuthorDate: Thu Jan 14 16:59:48 2021 -0600

    GROOVY-9373: allow block to fall through to failsafe return instructions
---
 .../org/codehaus/groovy/classgen/ReturnAdder.java    | 20 +-------------------
 1 file changed, 1 insertion(+), 19 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java 
b/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java
index cf01142..a40f738 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ReturnAdder.java
@@ -185,15 +185,9 @@ public class ReturnAdder {
                 listener.returnStatementAdded(returnStatement);
                 return returnStatement;
             } else {
-                List<Statement> statements = blockStatement.getStatements();
-                int lastIndex = statements.size() - 1;
+                List<Statement> statements = blockStatement.getStatements(); 
int lastIndex = statements.size() - 1;
                 Statement last = addReturnsIfNeeded(statements.get(lastIndex), 
blockStatement.getVariableScope());
                 if (doAdd) statements.set(lastIndex, last);
-                if (!returns(last)) {
-                    ReturnStatement returnStatement = new 
ReturnStatement(nullX());
-                    listener.returnStatementAdded(returnStatement);
-                    if (doAdd) statements.add(returnStatement);
-                }
                 return blockStatement;
             }
         }
@@ -234,16 +228,4 @@ public class ReturnAdder {
         }
         return statement;
     }
-
-    private static boolean returns(final Statement statement) {
-        return statement instanceof ReturnStatement
-            || statement instanceof BlockStatement
-            || statement instanceof IfStatement
-            || statement instanceof ExpressionStatement
-            || statement instanceof EmptyStatement
-            || statement instanceof TryCatchStatement
-            || statement instanceof ThrowStatement
-            || statement instanceof SynchronizedStatement
-            || statement instanceof BytecodeSequence;
-    }
 }

Reply via email to