Move handling of experimental_nested_set_as_skykey_threshold to SkyframeExecutor.

PiperOrigin-RevId: 281963441
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
index 120bdc9..91becad 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
@@ -38,7 +38,6 @@
 import com.google.devtools.build.lib.analysis.WorkspaceStatusAction.Factory;
 import com.google.devtools.build.lib.analysis.config.BuildOptions;
 import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
-import com.google.devtools.build.lib.buildtool.BuildRequestOptions;
 import com.google.devtools.build.lib.cmdline.LabelConstants;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
 import com.google.devtools.build.lib.concurrent.Uninterruptibles;
@@ -227,20 +226,6 @@
     return recordingDiffer;
   }
 
-  /**
-   * Update the nestedset size threshold if the flag value changed.
-   *
-   * @return whether an update was made.
-   */
-  private static boolean nestedSetAsSkyKeyThresholdUpdatedAndReset(
-      BuildRequestOptions buildRequestOptions) {
-    if (buildRequestOptions == null) {
-      return false;
-    }
-    return ArtifactNestedSetFunction.sizeThresholdUpdatedTo(
-        buildRequestOptions.nestedSetAsSkyKeyThreshold);
-  }
-
   @Override
   public void sync(
       ExtendedEventHandler eventHandler,
@@ -256,9 +241,7 @@
     // evaluator to avoid dependency inconsistencies in Skyframe.
     // Resetting the evaluator also creates new instances of the SkyFunctions, hence also wiping
     // various state maps in ActionExecutionFunction and ArtifactNestedSetFunction.
-    if (evaluatorNeedsReset
-        || nestedSetAsSkyKeyThresholdUpdatedAndReset(
-            options.getOptions(BuildRequestOptions.class))) {
+    if (evaluatorNeedsReset || nestedSetAsSkyKeyThresholdUpdatedAndReset(options)) {
       // Recreate MemoizingEvaluator so that graph is recreated with correct edge-clearing status,
       // or if the graph doesn't have edges, so that a fresh graph can be used.
       resetEvaluator();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index dd7a1a2..ccd2b89 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -2690,6 +2690,20 @@
     }
   }
 
+  /**
+   * Updates the nestedset size threshold if the flag value changed.
+   *
+   * @return whether an update was made.
+   */
+  protected static boolean nestedSetAsSkyKeyThresholdUpdatedAndReset(OptionsProvider options) {
+    BuildRequestOptions buildRequestOptions = options.getOptions(BuildRequestOptions.class);
+    if (buildRequestOptions == null) {
+      return false;
+    }
+    return ArtifactNestedSetFunction.sizeThresholdUpdatedTo(
+        buildRequestOptions.nestedSetAsSkyKeyThreshold);
+  }
+
   protected void syncPackageLoading(
       PackageCacheOptions packageCacheOptions,
       PathPackageLocator pathPackageLocator,