public void visitTypeInsn()

in instrumentation/src/com/intellij/rt/coverage/instrumentation/filters/branches/KotlinWhenMappingExceptionFilter.java [89:120]


  public void visitTypeInsn(int opcode, String type) {
    super.visitTypeInsn(opcode, type);
    if (opcode == Opcodes.NEW && type.equals("kotlin/NoWhenBranchMatchedException")) {
      if (myState == 1) {
        myState = 2;
      } else {
        myState = 0;
      }
      final PositionData jumpPosition = myJumpLabels == null ? null : myJumpLabels.get(myCurrentLabel);
      if (jumpPosition != null) {
        final LineData lineData = myContext.getLineData(jumpPosition.myLine);
        if (lineData != null && jumpPosition.myIndex < lineData.jumpsCount()) {
          final JumpData jumpData = lineData.getJumpData(jumpPosition.myIndex);
          if (jumpData != null) {
            jumpData.touchFalseHit();
          }
        }
      }
      final PositionData switchPosition = mySwitchLabels == null ? null : mySwitchLabels.get(myCurrentLabel);
      if (switchPosition != null) {
        final LineData lineData = myContext.getLineData(switchPosition.myLine);
        if (lineData != null && switchPosition.myIndex < lineData.switchesCount()) {
          final SwitchData switchData = lineData.getSwitchData(switchPosition.myIndex);
          if (switchData != null) {
            switchData.touch(-1);
          }
        }
      }
    } else {
      myState = 0;
    }
  }