List<FilePatch> nonWriteActionPreCheck() {
    List<String> failedMessages = new ArrayList<>();
    List<FilePatch> failedToApply = new ArrayList<>();
    myDelayedPrecheckContext = new DelayedPrecheckContext(myProject);
    for (FilePatch patch : myPatches) {
      CheckPath checker = getChecker(patch);
      if (!checker.canBeApplied(myDelayedPrecheckContext)) {
        ContainerUtil.addIfNotNull(failedMessages, checker.getErrorMessage());
        failedToApply.add(patch);
      }
    }
    if (!failedMessages.isEmpty()) {
      PatchApplier.showError(myProject, StringUtil.join(failedMessages, "\n"));
    }
    Collection<? extends FilePatch> skipped = myDelayedPrecheckContext.doDelayed();
    mySkipped.addAll(skipped);
    myPatches.removeAll(skipped);
    myPatches.removeAll(failedToApply);
    return failedToApply;
  }
List<FilePatch> nonWriteActionPreCheck()