Remove type parameter from SkyframeExecutor.

It is causing a bunch of raw type compiler warnings. Rather than putting <?> everywhere, just use a cast where necessary since the parameterized field is only used internally.

Made buildDriver private since subclasses only need to read it, not set it. Renamed getBuildDriver to createBuildDriver to make it clear it is intended to create a new instance.

PiperOrigin-RevId: 257811932
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallback.java
index 8e541ac2..af8a6c0 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/BuildOutputFormatterCallback.java
@@ -32,7 +32,6 @@
 import com.google.devtools.build.lib.query2.query.output.OutputFormatter.PossibleAttributeValues;
 import com.google.devtools.build.lib.rules.AliasConfiguredTarget;
 import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
-import com.google.devtools.build.skyframe.BuildDriver;
 import java.io.IOException;
 import java.io.OutputStream;
 
@@ -42,7 +41,7 @@
       ExtendedEventHandler eventHandler,
       CqueryOptions options,
       OutputStream out,
-      SkyframeExecutor<? extends BuildDriver> skyframeExecutor,
+      SkyframeExecutor skyframeExecutor,
       TargetAccessor<ConfiguredTarget> accessor) {
     super(eventHandler, options, out, skyframeExecutor, accessor);
   }
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoItem.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoItem.java
index d41a802..9f6875a 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoItem.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoItem.java
@@ -607,7 +607,7 @@
     public byte[] get(Supplier<BuildConfiguration> configurationSupplier, CommandEnvironment env) {
       StarlarkSemanticsOptions starlarkSemanticsOptions =
           commandOptions.getOptions(StarlarkSemanticsOptions.class);
-      SkyframeExecutor<?> skyframeExecutor = env.getBlazeWorkspace().getSkyframeExecutor();
+      SkyframeExecutor skyframeExecutor = env.getBlazeWorkspace().getSkyframeExecutor();
       StarlarkSemantics effectiveSkylarkSemantics =
           skyframeExecutor.getEffectiveStarlarkSemantics(starlarkSemanticsOptions);
       return print(effectiveSkylarkSemantics.toDeterministicString());
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 0731f72..7a4bd2f 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
@@ -123,7 +123,7 @@
  * A SkyframeExecutor that implicitly assumes that builds can be done incrementally from the most
  * recent build. In other words, builds are "sequenced".
  */
-public final class SequencedSkyframeExecutor extends SkyframeExecutor<BuildDriver> {
+public final class SequencedSkyframeExecutor extends SkyframeExecutor {
 
   private static final Logger logger = Logger.getLogger(SequencedSkyframeExecutor.class.getName());
 
@@ -204,7 +204,7 @@
   }
 
   @Override
-  protected BuildDriver getBuildDriver() {
+  protected BuildDriver createBuildDriver() {
     return new SequentialBuildDriver(memoizingEvaluator);
   }
 
@@ -470,7 +470,7 @@
             .setNumThreads(DEFAULT_THREAD_COUNT)
             .setEventHander(eventHandler)
             .build();
-    buildDriver.evaluate(ImmutableList.<SkyKey>of(), evaluationContext);
+    getDriver().evaluate(ImmutableList.of(), evaluationContext);
 
     FilesystemValueChecker fsvc = new FilesystemValueChecker(tsgm, null);
     // We need to manually check for changes to known files. This entails finding all dirty file
@@ -843,7 +843,7 @@
                       .setNumThreads(ResourceUsage.getAvailableProcessors())
                       .setEventHander(eventHandler)
                       .build();
-              buildDriver.evaluate(ImmutableList.<SkyKey>of(), evaluationContext);
+              getDriver().evaluate(ImmutableList.of(), evaluationContext);
               return null;
             }
           });
@@ -940,7 +940,7 @@
             .setNumThreads(DEFAULT_THREAD_COUNT)
             .setEventHander(eventHandler)
             .build();
-    return buildDriver.evaluate(ImmutableSet.of(key), evaluationContext).get(key);
+    return getDriver().evaluate(ImmutableSet.of(key), evaluationContext).get(key);
   }
 
   public static Builder builder() {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
index a736606..c19a52a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
@@ -105,7 +105,7 @@
 public final class SkyframeBuildView {
   private final ConfiguredTargetFactory factory;
   private final ArtifactFactory artifactFactory;
-  private final SkyframeExecutor<?> skyframeExecutor;
+  private final SkyframeExecutor skyframeExecutor;
   private final SkyframeActionExecutor skyframeActionExecutor;
   private boolean enableAnalysis = false;
 
@@ -146,7 +146,7 @@
 
   public SkyframeBuildView(
       BlazeDirectories directories,
-      SkyframeExecutor<?> skyframeExecutor,
+      SkyframeExecutor skyframeExecutor,
       ConfiguredRuleClassProvider ruleClassProvider,
       SkyframeActionExecutor skyframeActionExecutor) {
     this.skyframeActionExecutor = skyframeActionExecutor;
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 f22b1ea..972e530 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
@@ -185,6 +185,7 @@
 import com.google.devtools.build.skyframe.WalkableGraph.WalkableGraphFactory;
 import com.google.devtools.common.options.OptionsParsingException;
 import com.google.devtools.common.options.OptionsProvider;
+import com.google.errorprone.annotations.ForOverride;
 import java.io.PrintStream;
 import java.math.BigInteger;
 import java.util.ArrayList;
@@ -218,7 +219,7 @@
  * additional artifacts (workspace status and build info artifacts) into SkyFunctions for use during
  * the build.
  */
-public abstract class SkyframeExecutor<T extends BuildDriver> implements WalkableGraphFactory {
+public abstract class SkyframeExecutor implements WalkableGraphFactory {
   private static final Logger logger = Logger.getLogger(SkyframeExecutor.class.getName());
 
   // We delete any value that can hold an action -- all subclasses of ActionLookupKey.
@@ -266,7 +267,7 @@
   private final SkyframeBuildView skyframeBuildView;
   private ActionLogBufferPathGenerator actionLogBufferPathGenerator;
 
-  protected T buildDriver;
+  private BuildDriver buildDriver;
 
   private final Consumer<SkyframeExecutor> skyframeExecutorConsumerOnInit;
 
@@ -705,8 +706,7 @@
     incrementalBuildMonitor = null;
   }
 
-  @VisibleForTesting
-  public BuildDriver getDriverForTesting() {
+  public final BuildDriver getDriver() {
     return buildDriver;
   }
 
@@ -769,7 +769,7 @@
             DEFAULT_FILTER_WITH_ACTIONS,
             emittedEventState,
             tracksStateForIncrementality());
-    buildDriver = getBuildDriver();
+    buildDriver = createBuildDriver();
     skyframeExecutorConsumerOnInit.accept(this);
   }
 
@@ -837,7 +837,8 @@
 
   protected abstract Differencer evaluatorDiffer();
 
-  protected abstract T getBuildDriver();
+  @ForOverride
+  protected abstract BuildDriver createBuildDriver();
 
   /** Clear any configured target data stored outside Skyframe. */
   public void handleAnalysisInvalidatingChange() {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java
index ee4b9b5..f83269f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java
@@ -44,9 +44,9 @@
 
 /** Skyframe-based target pattern parsing. */
 final class SkyframeTargetPatternEvaluator implements TargetPatternPreloader {
-  private final SkyframeExecutor<?> skyframeExecutor;
+  private final SkyframeExecutor skyframeExecutor;
 
-  SkyframeTargetPatternEvaluator(SkyframeExecutor<?> skyframeExecutor) {
+  SkyframeTargetPatternEvaluator(SkyframeExecutor skyframeExecutor) {
     this.skyframeExecutor = skyframeExecutor;
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java b/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java
index 9e07eed..a1a1a8e 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/TestTargetUtilsTest.java
@@ -226,9 +226,7 @@
             .setEventHander(reporter)
             .build();
     EvaluationResult<TestSuiteExpansionValue> result =
-        getSkyframeExecutor()
-            .getDriverForTesting()
-            .evaluate(ImmutableList.of(key), evaluationContext);
+        getSkyframeExecutor().getDriver().evaluate(ImmutableList.of(key), evaluationContext);
     ResolvedTargets<Label> actual = result.get(key).getLabels();
     assertThat(actual.hasError()).isFalse();
     assertThat(actual.getTargets()).containsExactlyElementsIn(expectedLabels);
diff --git a/src/test/java/com/google/devtools/build/lib/query2/engine/SkyframeQueryHelper.java b/src/test/java/com/google/devtools/build/lib/query2/engine/SkyframeQueryHelper.java
index b825fbf..cec32db 100644
--- a/src/test/java/com/google/devtools/build/lib/query2/engine/SkyframeQueryHelper.java
+++ b/src/test/java/com/google/devtools/build/lib/query2/engine/SkyframeQueryHelper.java
@@ -71,7 +71,7 @@
 
 /** An implementation of AbstractQueryHelper to support testing bazel query. */
 public abstract class SkyframeQueryHelper extends AbstractQueryHelper<Target> {
-  protected SkyframeExecutor<?> skyframeExecutor;
+  protected SkyframeExecutor skyframeExecutor;
   protected FileSystem fileSystem = new InMemoryFileSystem(BlazeClock.instance());
   protected Path rootDirectory;
   protected BlazeDirectories directories;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageErrorMessageFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageErrorMessageFunctionTest.java
index 605c8d1..110e89e 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageErrorMessageFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageErrorMessageFunctionTest.java
@@ -23,7 +23,6 @@
 import com.google.devtools.build.skyframe.EvaluationResult;
 import com.google.devtools.build.skyframe.SkyKey;
 import com.google.devtools.build.skyframe.SkyValue;
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -32,13 +31,6 @@
 @RunWith(JUnit4.class)
 public class PackageErrorMessageFunctionTest extends BuildViewTestCase {
 
-  private SkyframeExecutor skyframeExecutor;
-
-  @Before
-  public final void createSkyframeExecutor() {
-    skyframeExecutor = getSkyframeExecutor();
-  }
-
   @Test
   public void testNoErrorMessage() throws Exception {
     scratch.file("a/BUILD");
@@ -80,7 +72,7 @@
             .setEventHander(reporter)
             .build();
     EvaluationResult<SkyValue> result =
-        skyframeExecutor.getDriverForTesting().evaluate(ImmutableList.of(key), evaluationContext);
+        skyframeExecutor.getDriver().evaluate(ImmutableList.of(key), evaluationContext);
     assertThat(result.hasError()).isFalse();
     SkyValue value = result.get(key);
     assertThat(value).isInstanceOf(PackageErrorMessageValue.class);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
index a7c87a0..0a6b74f 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
@@ -226,7 +226,7 @@
             .setEventHander(new Reporter(new EventBus(), eventCollector))
             .build();
     EvaluationResult<SkyValue> evaluationResult =
-        skyframeExecutor.getDriverForTesting().evaluate(singletonTargetPattern, evaluationContext);
+        skyframeExecutor.getDriver().evaluate(singletonTargetPattern, evaluationContext);
     // The evaluation has no errors if success was expected.
     assertThat(evaluationResult.hasError()).isNotEqualTo(successExpected);
     return Preconditions.checkNotNull(evaluationResult.getWalkableGraph());
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java
index 9c801ab..3e7e80e 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionTest.java
@@ -211,9 +211,7 @@
             .setEventHander(new Reporter(new EventBus(), eventCollector))
             .build();
     EvaluationResult<SkyValue> evaluationResult =
-        getSkyframeExecutor()
-            .getDriverForTesting()
-            .evaluate(singletonTargetPattern, evaluationContext);
+        getSkyframeExecutor().getDriver().evaluate(singletonTargetPattern, evaluationContext);
     // Currently all callers either expect success or pass keepGoing=true, which implies success,
     // since PrepareDepsOfPatternsFunction swallows all errors. Will need to be changed if a test
     // that evaluates with keepGoing=false and expects errors is added.
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java
index a577b7c..0828077 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java
@@ -30,13 +30,11 @@
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.devtools.build.lib.vfs.Root;
 import com.google.devtools.build.lib.vfs.RootedPath;
-import com.google.devtools.build.skyframe.BuildDriver;
 import com.google.devtools.build.skyframe.EvaluationContext;
 import com.google.devtools.build.skyframe.EvaluationResult;
 import com.google.devtools.build.skyframe.SkyKey;
 import com.google.devtools.build.skyframe.WalkableGraph;
 import java.io.IOException;
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -47,13 +45,6 @@
 @RunWith(JUnit4.class)
 public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTestCase {
 
-  private SkyframeExecutor skyframeExecutor;
-
-  @Before
-  public final void setSkyframeExecutor() throws Exception {
-    skyframeExecutor = getSkyframeExecutor();
-  }
-
   private SkyKey createCollectPackagesKey(
       Path root, PathFragment rootRelativePath, ImmutableSet<PathFragment> excludedPaths) {
     RootedPath rootedPath = RootedPath.toRootedPath(Root.fromPath(root), rootRelativePath);
@@ -80,7 +71,6 @@
   }
 
   private EvaluationResult<?> getEvaluationResult(SkyKey... keys) throws InterruptedException {
-    BuildDriver driver = skyframeExecutor.getDriverForTesting();
     EvaluationContext evaluationContext =
         EvaluationContext.newBuilder()
             .setKeepGoing(false)
@@ -88,7 +78,7 @@
             .setEventHander(reporter)
             .build();
     EvaluationResult<PrepareDepsOfTargetsUnderDirectoryValue> evaluationResult =
-        driver.evaluate(ImmutableList.copyOf(keys), evaluationContext);
+        skyframeExecutor.getDriver().evaluate(ImmutableList.copyOf(keys), evaluationContext);
     Preconditions.checkState(!evaluationResult.hasError());
     return evaluationResult;
   }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java
index 16a1ff7..e64b3da 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java
@@ -26,12 +26,10 @@
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.devtools.build.lib.vfs.Root;
 import com.google.devtools.build.lib.vfs.RootedPath;
-import com.google.devtools.build.skyframe.BuildDriver;
 import com.google.devtools.build.skyframe.EvaluationContext;
 import com.google.devtools.build.skyframe.EvaluationResult;
 import com.google.devtools.build.skyframe.SkyKey;
 import com.google.devtools.build.skyframe.WalkableGraph;
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -48,13 +46,6 @@
 @RunWith(JUnit4.class)
 public class RecursivePkgFunctionTest extends BuildViewTestCase {
 
-  private SkyframeExecutor skyframeExecutor;
-
-  @Before
-  public final void createSkyframeExecutor() throws Exception {
-    skyframeExecutor = getSkyframeExecutor();
-  }
-
   private SkyKey buildRecursivePkgKey(
       Path root, PathFragment rootRelativePath, ImmutableSet<PathFragment> excludedPaths) {
     RootedPath rootedPath = RootedPath.toRootedPath(Root.fromPath(root), rootRelativePath);
@@ -76,7 +67,6 @@
 
   private EvaluationResult<RecursivePkgValue> getEvaluationResult(SkyKey key)
       throws InterruptedException {
-    BuildDriver driver = skyframeExecutor.getDriverForTesting();
     EvaluationContext evaluationContext =
         EvaluationContext.newBuilder()
             .setKeepGoing(false)
@@ -84,7 +74,7 @@
             .setEventHander(reporter)
             .build();
     EvaluationResult<RecursivePkgValue> evaluationResult =
-        driver.evaluate(ImmutableList.of(key), evaluationContext);
+        skyframeExecutor.getDriver().evaluate(ImmutableList.of(key), evaluationContext);
     Preconditions.checkState(!evaluationResult.hasError());
     return evaluationResult;
   }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/util/SkyframeExecutorTestUtils.java b/src/test/java/com/google/devtools/build/lib/skyframe/util/SkyframeExecutorTestUtils.java
index ff3cfb9..0c12d8d 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/util/SkyframeExecutorTestUtils.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/util/SkyframeExecutorTestUtils.java
@@ -75,9 +75,7 @@
             .setNumThreads(SkyframeExecutor.DEFAULT_THREAD_COUNT)
             .setEventHander(errorEventListener)
             .build();
-    return skyframeExecutor
-        .getDriverForTesting()
-        .evaluate(ImmutableList.of(key), evaluationContext);
+    return skyframeExecutor.getDriver().evaluate(ImmutableList.of(key), evaluationContext);
   }
 
   /**