Remove attribute read checks expecting a DATA transition.
This is a precursor to removing the DATA transition outright.
While we could also have changed the Mode.DATA instances to
Mode.TARGET (which would declare that we expect the attribute not
to apply any transition), that would break existing definitions and
make depot cleanup more delicate. Plus, these checks weren't being
consistently applied across attributes anyway so they don't really
offer much. A lot of this logic is really just leftover legacy
from the pre-dynamic configuration days.
PiperOrigin-RevId: 198085059
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java b/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java
index dbb016a..40c7772 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java
@@ -376,7 +376,7 @@
if (allowDataAttributeEntriesInLabel
&& ruleContext.getRule().isAttrDefined("data", BuildType.LABEL_LIST)) {
Iterables.addAll(depsDataAndTools,
- ruleContext.getPrerequisitesIf("data", Mode.DATA, FilesToRunProvider.class));
+ ruleContext.getPrerequisitesIf("data", Mode.DONT_CHECK, FilesToRunProvider.class));
}
if (ruleContext.getRule().isAttrDefined("tools", BuildType.LABEL_LIST)) {
Iterables.addAll(depsDataAndTools,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 4381373..2d3478a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -1108,11 +1108,9 @@
+ " is not configured for the target configuration");
}
} else if (mode == Mode.DATA) {
- if (transition != disableLipoTransition) {
- throw new IllegalStateException(getRule().getLocation() + ": "
- + getRuleClassNameForLogging() + " attribute " + attributeName
- + " is not configured for the data configuration");
- }
+ throw new IllegalStateException(getRule().getLocation() + ": "
+ + getRuleClassNameForLogging() + " attribute " + attributeName
+ + ": DATA transition no longer supported"); // See b/80157700.
} else if (mode == Mode.SPLIT) {
if (!(attributeDefinition.hasSplitConfigurationTransition())) {
throw new IllegalStateException(getRule().getLocation() + ": "
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
index 2a332d6..d14029b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
@@ -1002,7 +1002,8 @@
* Collects runfiles from data dependencies of a target.
*/
public Builder addDataDeps(RuleContext ruleContext) {
- addTargets(getPrerequisites(ruleContext, "data", Mode.DATA), RunfilesProvider.DATA_RUNFILES);
+ addTargets(getPrerequisites(ruleContext, "data", Mode.DONT_CHECK),
+ RunfilesProvider.DATA_RUNFILES);
return this;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
index 0c4f797..c6cfedf 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
@@ -104,7 +104,7 @@
if (runUnder != null && runUnder.getLabel() != null
&& TargetUtils.isTestRule(ruleContext.getRule())) {
TransitiveInfoCollection runUnderTarget =
- ruleContext.getPrerequisite(":run_under", Mode.DATA);
+ ruleContext.getPrerequisite(":run_under", Mode.DONT_CHECK);
runfiles = new Runfiles.Builder(
ruleContext.getWorkspaceName(), ruleContext.getConfiguration().legacyExternalRunfiles())
.merge(getRunfiles(runUnderTarget, ruleContext.getWorkspaceName()))
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetExecutionSettings.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetExecutionSettings.java
index 867dc2b..d502a94 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetExecutionSettings.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestTargetExecutionSettings.java
@@ -74,7 +74,7 @@
private static Artifact getRunUnderExecutable(RuleContext ruleContext) {
TransitiveInfoCollection runUnderTarget = ruleContext
- .getPrerequisite(":run_under", Mode.DATA);
+ .getPrerequisite(":run_under", Mode.DONT_CHECK);
return runUnderTarget == null
? null
: runUnderTarget.getProvider(FilesToRunProvider.class).getExecutable();