Remove support for --discard_actions_after_execution.

The memory savings from this flag are not worth the complexity, and it interferes with action restarting.

RELNOTES: Remove support for --discard_actions_after_execution.
PiperOrigin-RevId: 201077905
diff --git a/src/test/java/com/google/devtools/build/lib/actions/BasicActionLookupValueTest.java b/src/test/java/com/google/devtools/build/lib/actions/BasicActionLookupValueTest.java
deleted file mode 100644
index a356cb5..0000000
--- a/src/test/java/com/google/devtools/build/lib/actions/BasicActionLookupValueTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.google.devtools.build.lib.actions;
-
-import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
-import com.google.devtools.build.lib.vfs.FileSystem;
-import com.google.devtools.build.lib.vfs.Path;
-import com.google.devtools.build.lib.vfs.PathFragment;
-import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Basic tests for {@link BasicActionLookupValue}. */
-@RunWith(JUnit4.class)
-public class BasicActionLookupValueTest {
-
-  private FileSystem fs;
-  private final ActionKeyContext actionKeyContext = new ActionKeyContext();
-
-  @Before
-  public void setUp() {
-    fs = new InMemoryFileSystem();
-  }
-
-  @Test
-  public void testActionPresentAfterEvaluation() {
-    Action action = mock(Action.class);
-    Artifact artifact = mock(Artifact.class);
-    when(action.getOutputs()).thenReturn(ImmutableSet.of(artifact));
-    when(action.canRemoveAfterExecution()).thenReturn(true);
-    ActionLookupValue underTest = new BasicActionLookupValue(action, false);
-    assertThat(underTest.getGeneratingActionIndex(artifact)).isEqualTo(0);
-    assertThat(underTest.getAction(0)).isSameAs(action);
-    underTest.actionEvaluated(0, action);
-    assertThat(underTest.getAction(0)).isSameAs(action);
-  }
-
-  @Test
-  public void testActionNotPresentAfterEvaluation() throws ActionConflictException {
-    Path execRoot = fs.getPath("/execroot");
-    Path outputRootPath = execRoot.getRelative("blaze-out");
-    ArtifactRoot root = ArtifactRoot.asDerivedRoot(execRoot, outputRootPath);
-    Action normalAction = mock(Action.class);
-    Artifact normalArtifact = new Artifact(PathFragment.create("normal"), root);
-    when(normalAction.getOutputs()).thenReturn(ImmutableSet.of(normalArtifact));
-    when(normalAction.canRemoveAfterExecution()).thenReturn(true);
-    Action persistentAction = mock(Action.class);
-    Artifact persistentOutput = new Artifact(PathFragment.create("persistent"), root);
-    when(persistentAction.getOutputs()).thenReturn(ImmutableSet.of(persistentOutput));
-    when(persistentAction.canRemoveAfterExecution()).thenReturn(false);
-    ActionLookupValue underTest =
-        new BasicActionLookupValue(
-            Actions.filterSharedActionsAndThrowActionConflict(
-                actionKeyContext, ImmutableList.of(normalAction, persistentAction)),
-            true);
-    assertThat(underTest.getGeneratingActionIndex(normalArtifact)).isEqualTo(0);
-    assertThat(underTest.getAction(0)).isSameAs(normalAction);
-    assertThat(underTest.getGeneratingActionIndex(persistentOutput)).isEqualTo(1);
-    assertThat(underTest.getAction(1)).isSameAs(persistentAction);
-    underTest.actionEvaluated(0, normalAction);
-    try {
-      underTest.getAction(0);
-      fail();
-    } catch (IllegalStateException e) {
-      // Expected.
-    }
-    assertThat(underTest.getGeneratingActionIndex(persistentOutput)).isEqualTo(1);
-    assertThat(underTest.getAction(1)).isSameAs(persistentAction);
-    underTest.actionEvaluated(1, persistentAction);
-    // Action that said not to clear it won't be cleared.
-    assertThat(underTest.getGeneratingActionIndex(persistentOutput)).isEqualTo(1);
-    assertThat(underTest.getAction(1)).isSameAs(persistentAction);
-  }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
index 1464e08..d9f4fde 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
@@ -150,7 +150,7 @@
     }
 
     @Override
-    public List<ActionAnalysisMetadata> getRegisteredActions() {
+    public ImmutableList<ActionAnalysisMetadata> getRegisteredActions() {
       return original.getRegisteredActions();
     }
 
@@ -329,7 +329,7 @@
     }
 
     @Override
-    public List<ActionAnalysisMetadata> getRegisteredActions() {
+    public ImmutableList<ActionAnalysisMetadata> getRegisteredActions() {
       return ImmutableList.of();
     }
 
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index 35ea7ef..704e7d1 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -1896,7 +1896,7 @@
     }
 
     @Override
-    public List<ActionAnalysisMetadata> getRegisteredActions() {
+    public ImmutableList<ActionAnalysisMetadata> getRegisteredActions() {
       throw new UnsupportedOperationException();
     }
 
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java
index 4da1ada..8b32d52 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java
@@ -17,7 +17,6 @@
 import static org.junit.Assert.fail;
 
 import com.google.common.base.Preconditions;
-import com.google.common.base.Suppliers;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Iterables;
@@ -92,8 +91,7 @@
                 .put(Artifact.ARTIFACT, new DummyArtifactFunction(artifactValueMap))
                 .put(
                     SkyFunctions.ACTION_TEMPLATE_EXPANSION,
-                    new ActionTemplateExpansionFunction(
-                        new ActionKeyContext(), Suppliers.ofInstance(false)))
+                    new ActionTemplateExpansionFunction(new ActionKeyContext()))
                 .build(),
             differencer);
     driver = new SequentialBuildDriver(evaluator);
@@ -223,8 +221,7 @@
     return new NonRuleConfiguredTargetValue(
         Mockito.mock(ConfiguredTarget.class),
         Actions.GeneratingActions.fromSingleAction(actionTemplate),
-        NestedSetBuilder.<Package>stableOrder().build(),
-        /*removeActionsAfterEvaluation=*/ false);
+        NestedSetBuilder.<Package>stableOrder().build());
   }
 
   private SpecialArtifact createTreeArtifact(String path) {
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
index 925056e..b6e5a36 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
@@ -379,8 +379,7 @@
               ALL_OWNER,
               new BasicActionLookupValue(
                   Actions.filterSharedActionsAndThrowActionConflict(
-                      actionKeyContext, ImmutableList.copyOf(actions)),
-                  false)));
+                      actionKeyContext, ImmutableList.copyOf(actions)))));
     }
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
index e0ef017..436cdb5 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
@@ -13,7 +13,6 @@
 // limitations under the License.
 package com.google.devtools.build.lib.skyframe;
 
-import com.google.common.base.Suppliers;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
@@ -122,8 +121,7 @@
                 .put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction())
                 .put(
                     SkyFunctions.ACTION_TEMPLATE_EXPANSION,
-                    new ActionTemplateExpansionFunction(
-                        actionKeyContext, Suppliers.ofInstance(false)))
+                    new ActionTemplateExpansionFunction(actionKeyContext))
                 .build(),
             differencer);
     driver = new SequentialBuildDriver(evaluator);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
index b4075b3..5633ab5 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
@@ -18,7 +18,6 @@
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
-import com.google.common.base.Suppliers;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
@@ -137,8 +136,7 @@
     tsgm = new TimestampGranularityMonitor(clock);
     ResourceManager.instance().setAvailableResources(ResourceSet.createWithRamCpuIo(100, 1, 1));
     actions = new HashSet<>();
-    actionTemplateExpansionFunction =
-        new ActionTemplateExpansionFunction(actionKeyContext, Suppliers.ofInstance(false));
+    actionTemplateExpansionFunction = new ActionTemplateExpansionFunction(actionKeyContext);
   }
 
   protected void clearActions() {
@@ -252,8 +250,7 @@
                   ACTION_LOOKUP_KEY,
                   new BasicActionLookupValue(
                       Actions.filterSharedActionsAndThrowActionConflict(
-                          actionKeyContext, ImmutableList.copyOf(actions)),
-                      false)));
+                          actionKeyContext, ImmutableList.copyOf(actions)))));
         }
       }
 
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java
index ae35626..a4b727e 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java
@@ -47,10 +47,7 @@
   private static ConfiguredTargetValue createConfiguredTargetValue(
       ConfiguredTarget configuredTarget) {
     return new NonRuleConfiguredTargetValue(
-        configuredTarget,
-        GeneratingActions.EMPTY,
-        NestedSetBuilder.emptySet(Order.STABLE_ORDER),
-        /*removeActionsAfterEvaluation=*/ false);
+        configuredTarget, GeneratingActions.EMPTY, NestedSetBuilder.emptySet(Order.STABLE_ORDER));
   }
 
   private EvaluationResult<ToolchainResolutionValue> invokeToolchainResolution(SkyKey key)
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
index 5aae728..49f075d 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
@@ -27,6 +27,7 @@
 import com.google.common.hash.Hashing;
 import com.google.common.util.concurrent.Runnables;
 import com.google.devtools.build.lib.actions.Action;
+import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
 import com.google.devtools.build.lib.actions.ActionExecutionContext;
 import com.google.devtools.build.lib.actions.ActionExecutionException;
 import com.google.devtools.build.lib.actions.ActionInput;
@@ -1227,9 +1228,10 @@
   /** A dummy action template expansion function that just returns the injected actions */
   private static class DummyActionTemplateExpansionFunction implements SkyFunction {
     private final ActionKeyContext actionKeyContext;
-    private final List<Action> actions;
+    private final ImmutableList<ActionAnalysisMetadata> actions;
 
-    DummyActionTemplateExpansionFunction(ActionKeyContext actionKeyContext, List<Action> actions) {
+    DummyActionTemplateExpansionFunction(
+        ActionKeyContext actionKeyContext, ImmutableList<ActionAnalysisMetadata> actions) {
       this.actionKeyContext = actionKeyContext;
       this.actions = actions;
     }
@@ -1238,7 +1240,7 @@
     public SkyValue compute(SkyKey skyKey, Environment env) {
       try {
         return new ActionTemplateExpansionValue(
-            Actions.filterSharedActionsAndThrowActionConflict(actionKeyContext, actions), false);
+            Actions.filterSharedActionsAndThrowActionConflict(actionKeyContext, actions));
       } catch (ActionConflictException e) {
         throw new IllegalStateException(e);
       }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
index 97816e3..a5c74c5 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java
@@ -233,8 +233,7 @@
               ALL_OWNER,
               new BasicActionLookupValue(
                   Actions.filterSharedActionsAndThrowActionConflict(
-                      actionKeyContext, ImmutableList.copyOf(actions)),
-                  false)));
+                      actionKeyContext, ImmutableList.copyOf(actions)))));
     }
   }