Fix #1371992: Error with switch when last case block omits break or return
authoraxelcl <axelcl>
Mon, 19 Dec 2005 23:31:45 +0000 (23:31 +0000)
committeraxelcl <axelcl>
Mon, 19 Dec 2005 23:31:45 +0000 (23:31 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/Parser.java

index c1e2cf7..ded438e 100644 (file)
@@ -1725,6 +1725,10 @@ public class Parser implements ITerminalSymbols, CompilerModifiers, ParserBasicI
                                expr(); // constant();
                                if (token == TokenNameCOLON || token == TokenNameSEMICOLON) {
                                        getNextToken();
+                                       if (token == TokenNameRBRACE) {
+                                               // empty case; assumes that the '}' token belongs to the wrapping switch statement
+                                               break;
+                                       }
                                        if (token == TokenNamecase || token == TokenNamedefault) {
                                                // empty case statement ?
                                                continue;
@@ -1752,7 +1756,7 @@ public class Parser implements ITerminalSymbols, CompilerModifiers, ParserBasicI
                                if (token == TokenNameCOLON || token == TokenNameSEMICOLON) {
                                        getNextToken();
                                        if (token == TokenNameRBRACE) {
-                                               // empty default case
+                                               // empty default case; ; assumes that the '}' token belongs to the wrapping switch statement
                                                break;
                                        }
                                        if (token != TokenNamecase) {