aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-08-02 23:29:54 +0200
committerGravatar Dmitry Lomov <dslomov@google.com>2017-08-03 12:10:00 +0200
commitc13bb39f78de5e016c9ec1e3e20c43a92ea7d159 (patch)
tree2b66f2ef9fb463f4ef71e3ae2feeaafb59886054 /src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
parent20f7da51b3228eca561102e3b871b67b704347a9 (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/analysis/AbstractConfiguredTarget.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
index deee99aefc..235dc375f4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
@@ -104,12 +104,6 @@ public abstract class AbstractConfiguredTarget
@Override
public Object getValue(String name) {
switch (name) {
- case FILES_FIELD:
- case DEFAULT_RUNFILES_FIELD:
- case DATA_RUNFILES_FIELD:
- case FilesToRunProvider.SKYLARK_NAME:
- // Standard fields should be proxied to their default provider object
- return getDefaultProvider().getValue(name);
case LABEL_FIELD:
return getLabel();
default:
@@ -205,7 +199,18 @@ public abstract class AbstractConfiguredTarget
if (OutputGroupProvider.SKYLARK_NAME.equals(providerKey)) {
return get(OutputGroupProvider.SKYLARK_CONSTRUCTOR);
}
- return rawGetSkylarkProvider(providerKey);
+ switch (providerKey) {
+ case FILES_FIELD:
+ case DEFAULT_RUNFILES_FIELD:
+ case DATA_RUNFILES_FIELD:
+ case FilesToRunProvider.SKYLARK_NAME:
+ // Standard fields should be proxied to their default provider object
+ return getDefaultProvider().getValue(providerKey);
+ case OutputGroupProvider.SKYLARK_NAME:
+ return get(OutputGroupProvider.SKYLARK_CONSTRUCTOR);
+ default:
+ return rawGetSkylarkProvider(providerKey);
+ }
}
/** Implement in subclasses to get a skylark provider for a given {@code providerKey}. */