void (@NotNull SwitchStatement switchStatement) { SwitchExprent switchExprent = (SwitchExprent)switchStatement.getHeadExprent(); Exprent value = Objects.requireNonNull(switchExprent).getValue(); if (!isEnumArray(value)) return; List<List<@Nullable Exprent>> caseValues = switchStatement.getCaseValues(); ArrayExprent array = (ArrayExprent)value; Map<Exprent, Exprent> mapping = evaluateCaseLabelsToFieldsMapping(caseValues, array); List<List<@Nullable Exprent>> realCaseValues = findRealCaseValues(caseValues, mapping); if (realCaseValues == null) return; caseValues.clear(); caseValues.addAll(realCaseValues); switchExprent.replaceExprent(value, ((InvocationExprent)array.getIndex()).getInstance().copy()); }