Clean up the semantics of input discovering actions a bit by making updateInputs() and inputsKnown() non-overridable and removing setInputs().
This comes at the cost of adding a flag to every action instance that's not used for non-input-discovering actions, but I think that's a deal. Simpler APIs are good, mmmmkay?
Also fixed a few pre-existing issues in TestAction and ObjcCompileAction.
--
PiperOrigin-RevId: 148749734
MOS_MIGRATED_REVID=148749734
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java b/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java
index 7170836..eac03d9 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java
@@ -196,8 +196,8 @@
}
Iterable<Artifact> actionInputs = action.getInputs();
// Resolve action inputs from cache, if necessary.
- boolean inputsKnown = action.inputsKnown();
- if (!inputsKnown && resolvedCacheArtifacts != null) {
+ boolean inputsDiscovered = action.inputsDiscovered();
+ if (!inputsDiscovered && resolvedCacheArtifacts != null) {
// The action doesn't know its inputs, but the caller has a good idea of what they are.
Preconditions.checkState(action.discoversInputs(),
"Actions that don't know their inputs must discover them: %s", action);
@@ -211,7 +211,7 @@
return new Token(getKeyString(action));
}
- if (!inputsKnown) {
+ if (!inputsDiscovered) {
action.updateInputs(actionInputs);
}
return null;