diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java b/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java index d499b44b4e..4a22d49591 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java @@ -20,6 +20,7 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.events.EventHandler; +import com.google.devtools.build.lib.packages.AspectClass; import com.google.devtools.build.lib.packages.AspectDefinition; import com.google.devtools.build.lib.packages.AspectFactory; import com.google.devtools.build.lib.packages.Attribute; @@ -89,20 +90,24 @@ public class PreciseAspectResolver implements AspectResolver { } // ...figure out which direct dependencies can possibly have aspects attached to them... - Multimap<Attribute, Label> depsWithPossibleAspects = ((Rule) target).getTransitions( - new BinaryPredicate<Rule, Attribute>() { - @Override - public boolean apply(@Nullable Rule rule, @Nullable Attribute attribute) { - for (Class<? extends AspectFactory<?, ?, ?>> aspectFactory : attribute.getAspects()) { - if (!AspectFactory.Util.create(aspectFactory).getDefinition() - .getAttributes().isEmpty()) { - return true; - } - } + Multimap<Attribute, Label> depsWithPossibleAspects = + ((Rule) target) + .getTransitions( + new BinaryPredicate<Rule, Attribute>() { + @Override + public boolean apply(@Nullable Rule rule, @Nullable Attribute attribute) { + for (AspectClass aspectClass : attribute.getAspects()) { + if (!AspectFactory.Util.create(aspectClass) + .getDefinition() + .getAttributes() + .isEmpty()) { + return true; + } + } - return false; - } - }); + return false; + } + }); // ...and add the package of the aspect. for (Label depLabel : depsWithPossibleAspects.values()) { |