public static boolean canRun(@NotNull Project project,
                                 @NotNull Executor executor,
                                 @NotNull RunConfiguration configuration,
                                 @Nullable Ref<Boolean> isStartingTracker) {
      List<SettingsAndEffectiveTarget> pairs;
      if (configuration instanceof CompoundRunConfiguration) {
        pairs = ((CompoundRunConfiguration)configuration).getConfigurationsWithEffectiveRunTargets();
      }
      else {
        ExecutionTarget target = ExecutionTargetManager.getActiveTarget(project);
        pairs = Collections.singletonList(new SettingsAndEffectiveTarget(configuration, target));
      }
      if (isStartingTracker != null) isStartingTracker.set(false);
      return canRun(project, pairs, executor, isStartingTracker);
    }
public static boolean canRun(@NotNull Project project,
                                 @NotNull Executor executor,
                                 @NotNull RunConfiguration configuration,
                                 @Nullable Ref<Boolean> isStartingTracker)