aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
index 2036401394..3ea0849634 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
@@ -30,7 +30,6 @@ import com.google.devtools.build.lib.analysis.PseudoAction;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleContext;
-import com.google.devtools.build.lib.analysis.SkylarkProviders;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.Util;
import com.google.devtools.build.lib.cmdline.Label;
@@ -294,12 +293,13 @@ public final class PyCommon {
private NestedSet<Artifact> getTransitivePythonSourcesFromSkylarkProvider(
TransitiveInfoCollection dep) {
SkylarkClassObject pythonSkylarkProvider = null;
- SkylarkProviders skylarkProviders = dep.getProvider(SkylarkProviders.class);
try {
- if (skylarkProviders != null) {
- pythonSkylarkProvider = skylarkProviders.getValue(PYTHON_SKYLARK_PROVIDER_NAME,
- SkylarkClassObject.class);
- }
+ pythonSkylarkProvider = SkylarkType.cast(
+ dep.get(PYTHON_SKYLARK_PROVIDER_NAME),
+ SkylarkClassObject.class,
+ null,
+ "%s should be a struct", PYTHON_SKYLARK_PROVIDER_NAME
+ );
if (pythonSkylarkProvider != null) {
Object sourceFiles = pythonSkylarkProvider.getValue(TRANSITIVE_PYTHON_SRCS);
@@ -472,13 +472,10 @@ public final class PyCommon {
public static boolean checkForSharedLibraries(Iterable<TransitiveInfoCollection> deps)
throws EvalException{
for (TransitiveInfoCollection dep : deps) {
- SkylarkProviders providers = dep.getProvider(SkylarkProviders.class);
- SkylarkClassObject provider = null;
- if (providers != null) {
- provider = providers.getValue(PYTHON_SKYLARK_PROVIDER_NAME,
- SkylarkClassObject.class);
- }
- if (provider != null) {
+ Object providerObject = dep.get(PYTHON_SKYLARK_PROVIDER_NAME);
+ if (providerObject != null) {
+ SkylarkType.checkType(providerObject, SkylarkClassObject.class, null);
+ SkylarkClassObject provider = (SkylarkClassObject) providerObject;
Boolean isUsingSharedLibrary = provider.getValue(IS_USING_SHARED_LIBRARY, Boolean.class);
if (Boolean.TRUE.equals(isUsingSharedLibrary)) {
return true;