< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java

Print this page
rev 51291 : imported patch switch
rev 51292 : [mq]: switch.02

*** 3364,3373 **** --- 3364,3378 ---- case 0: //default case 1: //single label cases.append(c); break; default: //multiple labels, expand: + //case C1, C2, C3: ... + //=> + //case C1: + //case C2: + //case C3: ... List<JCExpression> patterns = c.pats; while (patterns.tail.nonEmpty()) { cases.append(make_at(c.pos()).Case(JCCase.STATEMENT, List.of(patterns.head), List.nil(),
*** 3616,3625 **** --- 3621,3642 ---- } } @Override public void visitSwitchExpression(JCSwitchExpression tree) { + //translates switch expression to statement switch: + //switch (selector) { + // case C: break value; + // ... + //} + //=> + //(letexpr T exprswitch$; + // switch (selector) { + // case C: { exprswitch$ = value; break; } + // } + // exprswitch$ + //) VarSymbol dollar_switchexpr = new VarSymbol(Flags.FINAL|Flags.SYNTHETIC, names.fromString("exprswitch" + tree.pos + target.syntheticNameChar()), tree.type, currentMethodSym);
< prev index next >