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 ac54a810ac check last case for `yield` or `throw`
ac54a810ac is described below

commit ac54a810ac7c526506abd99619859627ebb230bb
Author: Eric Milles <[email protected]>
AuthorDate: Sat Dec 20 13:40:47 2025 -0600

    check last case for `yield` or `throw`
---
 src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java 
b/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
index 44c41ebc90..adc2647881 100644
--- a/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
+++ b/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
@@ -927,6 +927,11 @@ public class AstBuilder extends 
GroovyParserBaseVisitor<Object> {
                     
ctx.switchBlockStatementExpressionGroup().stream().map(this::visitSwitchBlockStatementExpressionGroup).toList();
             if (statementsAndArrowAndYieldOrThrow.isEmpty()) {
                 throw createParsingFailedException("`case` or `default` 
branches are expected", ctx.LBRACE());
+            } else {
+                var tuple = last(statementsAndArrowAndYieldOrThrow);
+                if (!tuple.getV2() && !tuple.getV3()) { // if no arrow, yield 
or throw is required
+                    throw createParsingFailedException("`yield` or `throw` is 
expected", tuple.getV1().get(0));
+                }
             }
 
             List<CaseStatement> caseStatements = new ArrayList<>();
@@ -946,9 +951,6 @@ public class AstBuilder extends 
GroovyParserBaseVisitor<Object> {
                         defaultStatement = s;
                     }
                 }
-                if (!tuple.getV2() && !tuple.getV3()) { // if no arrow, yield 
or throw is required
-                    throw createParsingFailedException("`yield` or `throw` is 
expected", tuple.getV1().get(0));
-                }
             }
 
             Statement statement = configureAST(

Reply via email to