@Override
  public void visitSwitchLabeledRuleStatement(@NotNull PsiSwitchLabeledRuleStatement statement) {
    startElement(statement);

    generateCaseValueInstructions(statement.getCaseLabelElementList());
    generateExpressionInstructions(statement.getGuardExpression());

    PsiStatement body = statement.getBody();
    if (body != null) {
      body.accept(this);
    }

    PsiSwitchBlock switchBlock = statement.getEnclosingSwitchBlock();
    if (switchBlock != null) {
      Instruction instruction =
        new GoToInstruction(0, BranchingInstruction.Role.END, PsiTreeUtil.isAncestor(switchBlock, myCodeFragment, true));
      myCurrentFlow.addInstruction(instruction);
      addElementOffsetLater(switchBlock, false);
    }

    finishElement(statement);
  }
@Override
  public void visitSwitchLabeledRuleStatement(@NotNull PsiSwitchLabeledRuleStatement statement)