diff options
author | dslomov <dslomov@google.com> | 2017-08-02 23:29:54 +0200 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2017-08-03 12:10:00 +0200 |
commit | c13bb39f78de5e016c9ec1e3e20c43a92ea7d159 (patch) | |
tree | 2b66f2ef9fb463f4ef71e3ae2feeaafb59886054 /src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java | |
parent | 20f7da51b3228eca561102e3b871b67b704347a9 (diff) |
Use RequiredProviders to validate rule prerequisites in RuleContext.
We now use a unified way to check provider requirements everywhere.
Reland of https://github.com/bazelbuild/bazel/commit/c32e1b1efcd703b3780de47fba62974123593d71.
RELNOTES: None.
PiperOrigin-RevId: 164038621
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java index aa960a87d4..1b783b9926 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java @@ -15,7 +15,6 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; -import com.google.common.base.Predicate; import com.google.common.base.Supplier; import com.google.common.base.Verify; import com.google.common.base.VerifyException; @@ -43,7 +42,6 @@ import com.google.devtools.build.lib.analysis.MergedConfiguredTarget; import com.google.devtools.build.lib.analysis.MergedConfiguredTarget.DuplicateException; import com.google.devtools.build.lib.analysis.TargetAndConfiguration; import com.google.devtools.build.lib.analysis.ToolchainContext; -import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider; @@ -67,7 +65,6 @@ import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.RawAttributeMapper; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.RuleClassProvider; -import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.skyframe.AspectFunction.AspectCreationException; @@ -988,20 +985,7 @@ public final class ConfiguredTargetFunction implements SkyFunction { if (!aspect.getDefinition().applyToFiles() && !(dep.getTarget() instanceof Rule)) { return false; } - return aspect.getDefinition().getRequiredProviders().isSatisfiedBy( - new Predicate<Class<?>>() { - @Override - public boolean apply(Class<?> provider) { - return dep.getProvider(provider.asSubclass(TransitiveInfoProvider.class)) != null; - } - }, - new Predicate<SkylarkProviderIdentifier>() { - @Override - public boolean apply(SkylarkProviderIdentifier skylarkProviderIdentifier) { - return dep.get(skylarkProviderIdentifier) != null; - } - } - ); + return dep.satisfies(aspect.getDefinition().getRequiredProviders()); } /** |