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;
}
}