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(