@Override
      protected DfaInstructionState @NotNull [] acceptInstruction(@NotNull DfaInstructionState instructionState) {
        Instruction instruction = instructionState.getInstruction();
        DfaMemoryState memState = instructionState.getMemoryState();
        if (instruction instanceof ThrowInstruction) {
          ContainerUtil.addIfNotNull(interceptor.myFailures, ((ThrowInstruction)instruction).getAnchor());
        }
        else if (instruction instanceof ReturnInstruction) {
          interceptor.myMayReturnNormally = true;
        }
        else if (instruction instanceof MethodCallInstruction) {
          PsiCall call = ((MethodCallInstruction)instruction).getCallExpression();
          if (!memState.isEphemeral() && call != null) {
            if (interceptor.myContract.getReturnValue().isFail()) {
              interceptor.myFailures.add(call);
              return DfaInstructionState.EMPTY_ARRAY;
            }
            if (ContractCheckListener.weCannotInferAnythingAboutMethodReturnValue((MethodCallInstruction)instruction)) {
              DfaInstructionState[] states = super.acceptInstruction(instructionState);
              for (DfaInstructionState state : states) {
                state.getMemoryState().markEphemeral();
              }
              return states;
            }
          }
        }
        return super.acceptInstruction(instructionState);
      }
@Override
      protected DfaInstructionState @NotNull [] acceptInstruction(@NotNull DfaInstructionState instructionState)