void () { Exprent switchSelector = switchStatement.getHeadExprent(); if (switchSelector == null || switchSelector.type != Exprent.EXPRENT_SWITCH) return; for (List<Exprent> values : switchStatement.getCaseValues()) { for (int i = 0; i < values.size(); i++) { ConstExprent constExprent = (ConstExprent)values.get(i); if (constExprent == null) continue; int caseLabelHash = constExprent.getIntValue(); String labelValue = mappedCaseLabelValues.get(caseLabelHash); values.set(i, new ConstExprent(VARTYPE_STRING, labelValue, null)); IfStatement ifStatement = mappedIfStatements.get(caseLabelHash); assert !ifStatement.getStats().isEmpty(); if (ifStatement.getStats().size() == 1) { ifStatement.getParent().replaceStatement(ifStatement, ifStatement.getStats().get(0)); continue; } removeOuterBreakEdge(ifStatement); ifStatement.getParent().replaceStatement(ifStatement, new SequenceStatement(ifStatement.getStats())); } } switchSelector.replaceExprent(((SwitchExprent)switchSelector).getValue(), this.switchSelector); }