diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java index 80b2c4e9ca..5e38598317 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java @@ -2054,7 +2054,7 @@ public final class RuleContext extends TargetContext /** * Because some rules still have to use allowedRuleClasses to do rule dependency validation. - * A dependency is valid if it is from a rule in allowedRuledClasses, OR if all of the providers + * A dependency is valid if it is from a rule in allowedRuleClasses, OR if all of the providers * in mandatoryNativeProviders AND mandatoryProvidersList are provided by the target. */ private void validateRuleDependency(ConfiguredTarget prerequisite, Attribute attribute) { @@ -2077,17 +2077,17 @@ public final class RuleContext extends TargetContext false); } - if (attribute.getAllowedRuleClassesWarningPredicate() != Predicates.<RuleClass>alwaysTrue()) { - Predicate<RuleClass> warningPredicate = attribute.getAllowedRuleClassesWarningPredicate(); - if (warningPredicate.apply(ruleClass)) { - reportBadPrerequisite(attribute, prerequisiteTarget.getTargetKind(), prerequisite, - "expected " + attribute.getAllowedRuleClassesPredicate(), true); - // prerequisite has a rule class allowed with a warning => accept, emitting a warning. - return; - } + if (attribute.getAllowedRuleClassesWarningPredicate().apply(ruleClass)) { + Predicate<RuleClass> allowedRuleClasses = attribute.getAllowedRuleClassesPredicate(); + reportBadPrerequisite(attribute, prerequisiteTarget.getTargetKind(), prerequisite, + allowedRuleClasses == Predicates.<RuleClass>alwaysTrue() + ? null : "expected " + allowedRuleClasses, + true); + // prerequisite has a rule class allowed with a warning => accept, emitting a warning. + return; } - // If we got there, we have no allowed rule class. + // If we get here, we have no allowed rule class. // If mandatory providers are specified, try them. Set<String> unfulfilledRequirements = new LinkedHashSet<>(); if (!attribute.getMandatoryNativeProvidersList().isEmpty() |