diff options
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 { |