diff options
author | Dmitry Lomov <dslomov@google.com> | 2016-06-29 06:37:50 +0000 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2016-06-29 08:57:05 +0000 |
commit | 01f85c025aaf4b6c0f138f00515227a092dd05c2 (patch) | |
tree | 8daab61ffe07629023941c6d120cd2cfb007cdc8 /src | |
parent | d565be110c283219f96f0c4f96fe232cb9f5b232 (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.java | 10 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java | 16 |
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 { |