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();
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShLibrary.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShLibrary.java
index 10fc471..e6a8c7c 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShLibrary.java
@@ -36,7 +36,7 @@
NestedSet<Artifact> filesToBuild = NestedSetBuilder.<Artifact>stableOrder()
.addAll(ruleContext.getPrerequisiteArtifacts("srcs", Mode.TARGET).list())
.addAll(ruleContext.getPrerequisiteArtifacts("deps", Mode.TARGET).list())
- .addAll(ruleContext.getPrerequisiteArtifacts("data", Mode.DATA).list())
+ .addAll(ruleContext.getPrerequisiteArtifacts("data", Mode.DONT_CHECK).list())
.build();
Runfiles runfiles = new Runfiles.Builder(
ruleContext.getWorkspaceName(), ruleContext.getConfiguration().legacyExternalRunfiles())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTest.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTest.java
index abc34c1..dfa2a9d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTest.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTest.java
@@ -256,7 +256,7 @@
}
private static ImmutableList<Artifact> getDataDeps(RuleContext ruleContext) {
- return ruleContext.getPrerequisiteArtifacts("data", Mode.DATA).list();
+ return ruleContext.getPrerequisiteArtifacts("data", Mode.DONT_CHECK).list();
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java
index b2e029d..92d468c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java
@@ -52,7 +52,7 @@
CommandHelper commandHelper =
new CommandHelper(context, tools, ImmutableMap.<Label, Iterable<Artifact>>of());
- resolvedData.addAll(context.getPrerequisiteArtifacts("data", Mode.DATA).list());
+ resolvedData.addAll(context.getPrerequisiteArtifacts("data", Mode.DONT_CHECK).list());
List<String>outputTemplates =
context.attributes().get("out_templates", Type.STRING_LIST);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
index 66f5844..a7ee1dd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
@@ -365,7 +365,7 @@
builder.addJavaTargets(targetsTreatedAsDeps(ClasspathType.BOTH));
if (ruleContext.getRule().isAttrDefined("data", BuildType.LABEL_LIST)) {
- builder.addJavaTargets(ruleContext.getPrerequisites("data", Mode.DATA));
+ builder.addJavaTargets(ruleContext.getPrerequisites("data", Mode.DONT_CHECK));
}
return builder.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
index ede9e0f..f0c8615 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
@@ -480,7 +480,7 @@
try {
return checkForSharedLibraries(Iterables.concat(
ruleContext.getPrerequisites("deps", Mode.TARGET),
- ruleContext.getPrerequisites("data", Mode.DATA)));
+ ruleContext.getPrerequisites("data", Mode.DONT_CHECK)));
} catch (EvalException e) {
ruleContext.ruleError(e.getMessage());
return false;