diff options
author | 2017-08-02 23:29:54 +0200 | |
---|---|---|
committer | 2017-08-03 12:10:00 +0200 | |
commit | c13bb39f78de5e016c9ec1e3e20c43a92ea7d159 (patch) | |
tree | 2b66f2ef9fb463f4ef71e3ae2feeaafb59886054 /src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.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/analysis/AbstractConfiguredTarget.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java | 19 |
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}. */ |