public static <T extends Throwable> void performPsiModification(@Nullable String trace, @NotNull ThrowableRunnable<T> runnable) throws T {
    beginPsiModification(trace);
    try {
      runnable.run();
    }
    finally {
      endPsiModification();
    }
  }
public static <T extends Throwable> void performPsiModification(@Nullable String trace, @NotNull ThrowableRunnable<T> runnable)