in instrumentation/src/com/intellij/rt/coverage/instrumentation/filters/lines/TryWithResourcesLineFilter.java [150:167]
public void visitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) {
mv.visitMethodInsn(opcode, owner, name, descriptor, isInterface);
if ((opcode == Opcodes.INVOKEINTERFACE || opcode == Opcodes.INVOKEVIRTUAL)
&& "close".equals(name)
&& "()V".equals(descriptor)
&& myState == State.LOAD_RESOURCE) {
myState = State.CALL_CLOSE;
} else if (myState == State.LOAD_ADDITIONAL_EXCEPTION
&& opcode == Opcodes.INVOKEVIRTUAL
&& "java/lang/Throwable".equals(owner)
&& "addSuppressed".equals(name)
&& "(Ljava/lang/Throwable;)V".equals(descriptor)) {
myState = State.CALL_ADD_SUPPRESSED;
} else {
setHasInstructions();
myState = State.INITIAL;
}
}