aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-06-29 06:37:50 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-06-29 08:57:05 +0000
commit01f85c025aaf4b6c0f138f00515227a092dd05c2 (patch)
tree8daab61ffe07629023941c6d120cd2cfb007cdc8 /src
parentd565be110c283219f96f0c4f96fe232cb9f5b232 (diff)
For --aspects parameter, ignore top-level targets that are not rules.
-- MOS_MIGRATED_REVID=126161513
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/BuildView.java10
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java16
2 files changed, 24 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index 7b42b376b5..2f5f70f01d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -449,7 +449,10 @@ public class BuildView {
PathFragment bzlFile = new PathFragment("/" + aspect.substring(0, delimiterPosition));
String skylarkFunctionName = aspect.substring(delimiterPosition + 1);
- for (ConfiguredTargetKey targetSpec : topLevelCtKeys) {
+ for (TargetAndConfiguration targetSpec : topLevelTargetsWithConfigs) {
+ if (!(targetSpec.getTarget() instanceof Rule)) {
+ continue;
+ }
aspectKeys.add(
AspectValue.createSkylarkAspectKey(
targetSpec.getLabel(),
@@ -464,7 +467,10 @@ public class BuildView {
final NativeAspectClass aspectFactoryClass =
ruleClassProvider.getNativeAspectClassMap().get(aspect);
if (aspectFactoryClass != null) {
- for (ConfiguredTargetKey targetSpec : topLevelCtKeys) {
+ for (TargetAndConfiguration targetSpec : topLevelTargetsWithConfigs) {
+ if (!(targetSpec.getTarget() instanceof Rule)) {
+ continue;
+ }
aspectKeys.add(
AspectValue.createAspectKey(
targetSpec.getLabel(),
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
index 8677771dd7..97368f8ed4 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
@@ -1031,6 +1031,22 @@ public class SkylarkAspectsTest extends AnalysisTestCase {
}
}
+ @Test
+ public void toplevelAspectOnFile() throws Exception {
+ scratch.file(
+ "test/aspect.bzl",
+ "def _impl(target, ctx):",
+ " print('This aspect does nothing')",
+ " return struct()",
+ "MyAspect = aspect(implementation=_impl)");
+ scratch.file("test/BUILD", "exports_files(['file.txt'])");
+ scratch.file("test/file.txt", "");
+ AnalysisResult analysisResult =
+ update(ImmutableList.of("test/aspect.bzl%MyAspect"), "//test:file.txt");
+ assertThat(analysisResult.hasError()).isFalse();
+ assertThat(analysisResult.getAspects()).isEmpty();
+ }
+
@RunWith(JUnit4.class)
public static final class WithKeepGoing extends SkylarkAspectsTest {