List<IntCaseGroup> newCases = new ArrayList<IntCaseGroup>();
// We want to treat each case group independently with regards to the
// variables that need to be released.
for (int i = 0, n = cases.size(); i < n; ++i) {
IntCaseGroup group = cases.get(i);
Map<String, JavaTypeName> variablesToFindInGroup = new HashMap<String, JavaTypeName>(variablesOfInterest);
remainingVars.add(variablesToFindInGroup);
VarReleaser vr = new VarReleaser(variablesToFindInGroup);
newCases.add((IntCaseGroup)group.accept(vr, null));
}
SwitchStatement.DefaultCase newDefault = null;
Map<String, JavaTypeName> variablesOfInterestForDefault = new HashMap<String, JavaTypeName>(variablesOfInterest);
if (switchStatement.getDefaultStatement() != null) {