diff options
author | 2015-04-22 14:11:16 +0000 | |
---|---|---|
committer | 2015-04-23 09:09:56 +0000 | |
commit | 5acec4c9115df63a0aee582c6796ebc0f2e71bd7 (patch) | |
tree | e62b7d697d8fcb2e8fac1253f852f6d2f1cc801b /src/main/java/com/google/devtools/build/lib | |
parent | dc30c07cc597104fccef63b9fee1948a2324fc5e (diff) |
Only check visibility when the rule class has the attribute
Fixes #150.
--
MOS_MIGRATED_REVID=91785592
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java b/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java index e2cf9eac66..ffc1fef5b6 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java +++ b/src/main/java/com/google/devtools/build/lib/query2/LabelVisitor.java @@ -35,7 +35,9 @@ import com.google.devtools.build.lib.packages.OutputFile; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.PackageGroup; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.Target; +import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.pkgcache.PackageProvider; import com.google.devtools.build.lib.pkgcache.TargetEdgeObserver; import com.google.devtools.build.lib.syntax.Label; @@ -365,7 +367,11 @@ final class LabelVisitor { private void visitTargetVisibility(Target target, int depth, int count) { Attribute attribute = null; if (target instanceof Rule) { - attribute = ((Rule) target).getRuleClassObject().getAttributeByName("visibility"); + RuleClass ruleClass = ((Rule) target).getRuleClassObject(); + if (!ruleClass.hasAttr("visibility", Type.NODEP_LABEL_LIST)) { + return; + } + attribute = ruleClass.getAttributeByName("visibility"); } for (Label label : target.getVisibility().getDependencyLabels()) { |