@Override
  public @NotNull NonBlockingReadAction<T> inSmartMode(@NotNull Project project) {
    return withConstraint(new InSmartMode(project)).expireWith(project);
  }
@Override
  public @NotNull NonBlockingReadAction<T> inSmartMode(@NotNull Project project)