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 f3e1535916bdce..12fd6b92249fb3 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
@@ -89,7 +89,6 @@ public String toString() {
return "ConfiguredTarget(" + getTarget().getLabel() + ", " + getConfiguration() + ")";
}
- @Nullable
@Override
public
P getProvider(Class
provider) {
AnalysisUtils.checkProvider(provider);
@@ -117,7 +116,7 @@ public Object getValue(String name) {
}
@Override
- public Object getIndex(Object key, Location loc) throws EvalException {
+ public final Object getIndex(Object key, Location loc) throws EvalException {
if (!(key instanceof ClassObjectConstructor)) {
throw new EvalException(loc, String.format(
"Type Target only supports indexing by object constructors, got %s instead",
@@ -149,7 +148,7 @@ public String errorMessage(String name) {
}
@Override
- public ImmutableCollection getKeys() {
+ public final ImmutableCollection getKeys() {
ImmutableList.Builder result = ImmutableList.builder();
result.addAll(ImmutableList.of(
DATA_RUNFILES_FIELD,
@@ -180,7 +179,7 @@ private DefaultProvider getDefaultProvider() {
@Nullable
@Override
- public Object get(SkylarkProviderIdentifier id) {
+ public final Object get(SkylarkProviderIdentifier id) {
if (id.isLegacy()) {
return get(id.getLegacyId());
}
@@ -191,7 +190,7 @@ public Object get(SkylarkProviderIdentifier id) {
/** Returns a declared provider provided by this target. Only meant to use from Skylark. */
@Nullable
@Override
- public SkylarkClassObject get(ClassObjectConstructor.Key providerKey) {
+ public final SkylarkClassObject get(ClassObjectConstructor.Key providerKey) {
if (providerKey.equals(DefaultProvider.SKYLARK_CONSTRUCTOR.getKey())) {
return getDefaultProvider();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java
index be92473463448d..f1c4b4d515d6de 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java
@@ -88,9 +88,14 @@ public TransitiveInfoProviderMap getProviders() {
@Nullable
@VisibleForTesting
public P getProvider(Class
providerClass) {
+ AnalysisUtils.checkProvider(providerClass);
return providers.getProvider(providerClass);
}
+ SkylarkProviders getSkylarkProviders() {
+ return providers.getProvider(SkylarkProviders.class);
+ }
+
public Object getProvider(SkylarkProviderIdentifier id) {
if (id.isLegacy()) {
return get(id.getLegacyId());
@@ -103,7 +108,7 @@ public SkylarkClassObject get(ClassObjectConstructor.Key key) {
if (OutputGroupProvider.SKYLARK_CONSTRUCTOR.getKey().equals(key)) {
return getProvider(OutputGroupProvider.class);
}
- SkylarkProviders skylarkProviders = getProvider(SkylarkProviders.class);
+ SkylarkProviders skylarkProviders = providers.getProvider(SkylarkProviders.class);
return skylarkProviders != null ? skylarkProviders.getDeclaredProvider(key) : null;
}
@@ -111,7 +116,7 @@ public Object get(String legacyKey) {
if (OutputGroupProvider.SKYLARK_NAME.equals(legacyKey)) {
return getProvider(OutputGroupProvider.class);
}
- SkylarkProviders skylarkProviders = getProvider(SkylarkProviders.class);
+ SkylarkProviders skylarkProviders = providers.getProvider(SkylarkProviders.class);
return skylarkProviders != null
? skylarkProviders.get(SkylarkProviderIdentifier.forLegacy(legacyKey))
: null;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
index 5605f953bfac91..cee9b8544adba8 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
@@ -16,6 +16,7 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.packages.Target;
+import com.google.devtools.build.lib.syntax.ClassObject;
import javax.annotation.Nullable;
/**
@@ -28,7 +29,7 @@
* {@link TransitiveInfoCollection}s. Also, {@link ConfiguredTarget} objects should not be
* accessible from the action graph.
*/
-public interface ConfiguredTarget extends TransitiveInfoCollection {
+public interface ConfiguredTarget extends TransitiveInfoCollection, ClassObject {
/**
* All ConfiguredTarget
s have a "label" field.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/EnvironmentGroupConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/EnvironmentGroupConfiguredTarget.java
index eb7a1e1a324a9d..e67a2b6395e40a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/EnvironmentGroupConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/EnvironmentGroupConfiguredTarget.java
@@ -14,11 +14,8 @@
package com.google.devtools.build.lib.analysis;
-import com.google.devtools.build.lib.packages.ClassObjectConstructor;
import com.google.devtools.build.lib.packages.EnvironmentGroup;
-import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.util.Preconditions;
-import javax.annotation.Nullable;
/**
* Dummy ConfiguredTarget for environment groups. Contains no functionality, since
@@ -34,11 +31,4 @@ public final class EnvironmentGroupConfiguredTarget extends AbstractConfiguredTa
public EnvironmentGroup getTarget() {
return (EnvironmentGroup) super.getTarget();
}
-
- @Nullable
- @Override
- public SkylarkClassObject get(ClassObjectConstructor.Key providerKey) {
- // No providers.
- return null;
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
index 399ef6afe6747b..7b68c7b2b35b00 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
@@ -65,7 +65,7 @@ public Artifact getArtifact() {
}
/**
- * Returns the file type of this file target.
+ * Returns the file name of this file target.
*/
@Override
public String getFilename() {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PackageGroupConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/PackageGroupConfiguredTarget.java
index 3e0b855904f6d1..181162c97a218b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/PackageGroupConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/PackageGroupConfiguredTarget.java
@@ -18,12 +18,9 @@
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.events.Event;
-import com.google.devtools.build.lib.packages.ClassObjectConstructor;
import com.google.devtools.build.lib.packages.PackageGroup;
import com.google.devtools.build.lib.packages.PackageSpecification;
-import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.util.Preconditions;
-import javax.annotation.Nullable;
/**
* Dummy ConfiguredTarget for package groups. Contains no functionality, since
@@ -66,12 +63,4 @@ public PackageGroup getTarget() {
public NestedSet getPackageSpecifications() {
return packageSpecifications;
}
-
-
- @Nullable
- @Override
- public SkylarkClassObject get(ClassObjectConstructor.Key providerKey) {
- // No providers.
- return null;
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java
index 993b812f95f464..85e65940fd4fda 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java
@@ -19,6 +19,8 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.OutputFile;
import com.google.devtools.build.lib.packages.Rule;
+import com.google.devtools.build.lib.packages.SkylarkClassObject;
+import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor;
import com.google.devtools.build.lib.util.Preconditions;
import javax.annotation.Nullable;
@@ -48,7 +50,8 @@ public enum Mode {
RuleConfiguredTarget(
RuleContext ruleContext,
TransitiveInfoProviderMap providers,
- SkylarkProviders skylarkProviders) {
+ ImmutableMap legacySkylarkProviders,
+ ImmutableMap skylarkProviders) {
super(ruleContext);
// We don't use ImmutableMap.Builder here to allow augmenting the initial list of 'default'
// providers by passing them in.
@@ -59,9 +62,11 @@ public enum Mode {
Preconditions.checkState(providerBuilder.contains(FilesToRunProvider.class));
// Initialize every SkylarkApiProvider
- if (!skylarkProviders.isEmpty()) {
- skylarkProviders.init(this);
- providerBuilder.add(skylarkProviders);
+ if (!legacySkylarkProviders.isEmpty() || !skylarkProviders.isEmpty()) {
+ SkylarkProviders allSkylarkProviders = new SkylarkProviders(legacySkylarkProviders,
+ skylarkProviders);
+ allSkylarkProviders.init(this);
+ providerBuilder.add(allSkylarkProviders);
}
this.providers = providerBuilder.build();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
index 84fa02700c4f84..552122a3a54a7e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
@@ -140,7 +140,7 @@ public ConfiguredTarget build() {
return new RuleConfiguredTarget(
ruleContext,
providers,
- new SkylarkProviders(skylarkProviders.build(), skylarkDeclaredProviders.build()));
+ skylarkProviders.build(), skylarkDeclaredProviders.build());
}
/** Adds skylark providers from a skylark provider registry, and checks for collisions. */
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/SkylarkProviders.java b/src/main/java/com/google/devtools/build/lib/analysis/SkylarkProviders.java
index 78cb2471641e04..a9046eb03e0e76 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/SkylarkProviders.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/SkylarkProviders.java
@@ -32,9 +32,13 @@
/**
* A helper class for transitive infos provided by Skylark rule implementations.
+ *
+ * DO NOT USE THIS CLASS to access Skylark providers.
+ * Use {@link ConfiguredTarget#get(SkylarkProviderIdentifier)} or
+ * {@link ConfiguredAspect#getProvider(SkylarkProviderIdentifier)}.
*/
@Immutable
-public final class SkylarkProviders implements TransitiveInfoProvider {
+final class SkylarkProviders implements TransitiveInfoProvider {
private final ImmutableMap
declaredProviders;
private final ImmutableMap skylarkProviders;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java
index 7be13d2dda01d1..3ac06faff708da 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java
@@ -19,7 +19,6 @@
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.FileProvider;
-import com.google.devtools.build.lib.analysis.SkylarkProviders;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.cmdline.Label;
@@ -127,19 +126,15 @@ public Object getValue(String name) {
? NestedSetBuilder.emptySet(Order.STABLE_ORDER)
: getProvider(FileProvider.class).getFilesToBuild());
}
- if (actual instanceof ClassObject) {
- return ((ClassObject) actual).getValue(name);
- }
- return actual == null ? null : actual.get(name);
+ return actual == null ? null : actual.getValue(name);
}
@Override
public ImmutableCollection getKeys() {
- ImmutableList.Builder result = ImmutableList.builder().add("label", "files");
if (actual != null) {
- result.addAll(actual.getProvider(SkylarkProviders.class).getKeys());
+ return actual.getKeys();
}
- return result.build();
+ return ImmutableList.of();
}
@Override
@@ -147,4 +142,12 @@ public String errorMessage(String name) {
// Use the default error message.
return null;
}
+
+ /**
+ * Returns a target this target aliases.
+ */
+ @Nullable
+ public ConfiguredTarget getActual() {
+ return actual;
+ }
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
index dd1dece72a2a87..848ef4419ca13b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
@@ -37,6 +37,8 @@
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.packages.BuildType;
+import com.google.devtools.build.lib.packages.ClassObjectConstructor;
+import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.packages.TargetUtils;
import com.google.devtools.build.lib.rules.cpp.CppCompilationContext;
@@ -831,6 +833,15 @@ public final Iterable
getDependencies(
return AnalysisUtils.getProviders(getDependencies(), provider);
}
+ /**
+ * Gets all the deps that implement a particular provider.
+ */
+ public final
Iterable
getDependencies(
+ ClassObjectConstructor.Key provider, Class
resultClass) {
+ return AnalysisUtils.getProviders(getDependencies(), provider, resultClass);
+ }
+
+
/**
* Returns true if and only if this target has the neverlink attribute set to
* 1, or false if the neverlink attribute does not exist (for example, on
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java
index f8c6daec8fa911..1a07ff3d0e222c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java
@@ -18,7 +18,6 @@
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.Runfiles;
-import com.google.devtools.build.lib.analysis.SkylarkProviders;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.analysis.TransitiveInfoProviderMap;
@@ -133,12 +132,8 @@ public static T getProvider(
if (provider != null) {
return provider;
}
- SkylarkProviders skylarkProviders = target.getProvider(SkylarkProviders.class);
- if (skylarkProviders == null) {
- return null;
- }
JavaProvider javaProvider =
- (JavaProvider) skylarkProviders.getDeclaredProvider(JavaProvider.JAVA_PROVIDER.getKey());
+ (JavaProvider) target.get(JavaProvider.JAVA_PROVIDER.getKey());
if (javaProvider == null) {
return null;
}
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 2036401394da06..3ea0849634560a 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.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 @@ private Iterable extends TransitiveInfoCollection> getTargetDeps() {
private NestedSet 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 boolean usesSharedLibraries() {
public static boolean checkForSharedLibraries(Iterable 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;
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationSkylarkTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationSkylarkTest.java
index 3ea05dc474c9ba..f92adf919dd3fa 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationSkylarkTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationSkylarkTest.java
@@ -16,7 +16,6 @@
import static com.google.common.truth.Truth.assertThat;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
-import com.google.devtools.build.lib.analysis.SkylarkProviders;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.syntax.SkylarkDict;
import org.junit.Test;
@@ -48,8 +47,7 @@ public void testSkylarkWithTestEnvOptions() throws Exception {
")");
ConfiguredTarget skylarkTarget = getConfiguredTarget("//examples/config_skylark:my_target");
- SkylarkProviders skylarkProviders = skylarkTarget.getProvider(SkylarkProviders.class);
- assertThat(skylarkProviders.getValue("test_env", SkylarkDict.class).get("TEST_ENV_VAR"))
+ assertThat(((SkylarkDict) skylarkTarget.get("test_env")).get("TEST_ENV_VAR"))
.isEqualTo("my_value");
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
index 92f3ec0c47fb3f..25e4c370a0fb91 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
@@ -20,7 +20,6 @@
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
-import com.google.devtools.build.lib.analysis.SkylarkProviders;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -65,9 +64,7 @@ public void testJavaPlugin() throws Exception {
" srcs = ['ToBeProcessed.java'])",
"my_rule(name = 'my', dep = ':to_be_processed')");
ConfiguredTarget configuredTarget = getConfiguredTarget("//java/test:my");
- SkylarkProviders provider = configuredTarget.getProvider(SkylarkProviders.class);
- SkylarkClassObject skylarkClassObject = provider
- .getDeclaredProvider(
+ SkylarkClassObject skylarkClassObject = configuredTarget.get(
new SkylarkKey(Label.parseAbsolute("//java/test:extension.bzl"), "result"));
assertThat(
@@ -126,9 +123,8 @@ public void testJavaProviderFieldsAreSkylarkAccessible() throws Exception {
ConfiguredTarget javaLibraryTarget = getConfiguredTarget("//java/test:jl");
// Extract out the information from skylark rule
- SkylarkProviders provider = myConfiguredTarget.getProvider(SkylarkProviders.class);
SkylarkClassObject skylarkClassObject =
- provider.getDeclaredProvider(
+ myConfiguredTarget.get(
new SkylarkKey(Label.parseAbsolute("//java/test:extension.bzl"), "result"));
SkylarkNestedSet rawMyCompileJars =
@@ -289,7 +285,7 @@ public void javaProviderExposedOnJavaLibrary() throws Exception {
SkylarkKey myProviderKey =
new SkylarkKey(Label.parseAbsolute("//foo:extension.bzl"), "my_provider");
SkylarkClassObject declaredProvider =
- myRuleTarget.getProvider(SkylarkProviders.class).getDeclaredProvider(myProviderKey);
+ myRuleTarget.get(myProviderKey);
Object javaProvider = declaredProvider.getValue("p");
assertThat(javaProvider).isInstanceOf(JavaProvider.class);
assertThat(javaLibraryTarget.getProvider(JavaProvider.class)).isEqualTo(javaProvider);
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
index c44aea35cbc577..56b75357aba660 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
@@ -30,7 +30,6 @@
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.ExtraActionArtifactsProvider;
-import com.google.devtools.build.lib.analysis.SkylarkProviders;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -588,9 +587,8 @@ public void testJavaLiteProtoLibraryAspectProviders() throws Exception {
private static P getProvider(
Class
providerClass, ConfiguredTarget target) {
- SkylarkProviders skylarkProviders = target.getProvider(SkylarkProviders.class);
JavaProvider javaProvider =
- (JavaProvider) skylarkProviders.getDeclaredProvider(JavaProvider.JAVA_PROVIDER.getKey());
+ (JavaProvider) target.get(JavaProvider.JAVA_PROVIDER.getKey());
return javaProvider.getProvider(providerClass);
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
index 6a8d28b7c6d3f6..8609c52d1ca131 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java
@@ -27,7 +27,6 @@
import com.google.devtools.build.lib.analysis.ConfiguredAspect;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.OutputGroupProvider;
-import com.google.devtools.build.lib.analysis.SkylarkProviders;
import com.google.devtools.build.lib.analysis.ViewCreationFailedException;
import com.google.devtools.build.lib.analysis.util.AnalysisTestCase;
import com.google.devtools.build.lib.cmdline.Label;
@@ -35,7 +34,6 @@
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.packages.AspectDefinition;
import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
-import com.google.devtools.build.lib.packages.ClassObjectConstructor.Key;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor.SkylarkKey;
import com.google.devtools.build.lib.rules.cpp.CppConfiguration;
@@ -45,7 +43,6 @@
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import java.util.Arrays;
-import java.util.List;
import javax.annotation.Nullable;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -95,12 +92,16 @@ public void aspectWithDeclaredProviders() throws Exception {
assertThat(getLabelsToBuild(analysisResult)).containsExactly("//test:xxx");
assertThat(getAspectDescriptions(analysisResult))
.containsExactly("//test:aspect.bzl%MyAspect(//test:xxx)");
+ ConfiguredAspect configuredAspect = Iterables.getOnlyElement(analysisResult.getAspects())
+ .getConfiguredAspect();
- List providers = getDeclaredProviderKeys(analysisResult);
- assertThat((providers.get(0)))
- .isEqualTo(new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "foo"));
- assertThat((providers.get(1)))
- .isEqualTo(new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "bar"));
+ SkylarkKey fooKey = new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "foo");
+ SkylarkKey barKey = new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "bar");
+
+ assertThat(configuredAspect.get(fooKey).getConstructor().getKey())
+ .isEqualTo(fooKey);
+ assertThat(configuredAspect.get(barKey).getConstructor().getKey())
+ .isEqualTo(barKey);
}
@Test
@@ -120,11 +121,16 @@ public void aspectWithDeclaredProvidersInAStruct() throws Exception {
assertThat(getAspectDescriptions(analysisResult))
.containsExactly("//test:aspect.bzl%MyAspect(//test:xxx)");
- List providers = getDeclaredProviderKeys(analysisResult);
- assertThat((providers.get(0)))
- .isEqualTo(new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "foo"));
- assertThat((providers.get(1)))
- .isEqualTo(new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "bar"));
+ ConfiguredAspect configuredAspect = Iterables.getOnlyElement(analysisResult.getAspects())
+ .getConfiguredAspect();
+
+ SkylarkKey fooKey = new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "foo");
+ SkylarkKey barKey = new SkylarkKey(Label.parseAbsolute("//test:aspect.bzl"), "bar");
+
+ assertThat(configuredAspect.get(fooKey).getConstructor().getKey())
+ .isEqualTo(fooKey);
+ assertThat(configuredAspect.get(barKey).getConstructor().getKey())
+ .isEqualTo(barKey);
}
private Iterable getAspectDescriptions(AnalysisResult analysisResult) {
@@ -142,24 +148,6 @@ public String apply(AspectValue aspectValue) {
});
}
- private List getDeclaredProviderKeys(AnalysisResult analysisResult) {
- return transform(
- analysisResult.getAspects(),
- new Function>() {
- @Nullable
- @Override
- public List apply(AspectValue aspectValue) {
- return aspectValue
- .getConfiguredAspect()
- .getProvider(SkylarkProviders.class)
- .getDeclaredProviderKeys()
- .asList();
- }
- })
- .iterator()
- .next(); // Assume there's only one aspect
- }
-
@Test
public void aspectCommandLineLabel() throws Exception {
scratch.file(
@@ -586,9 +574,7 @@ public void aspectsFromSkylarkRules() throws Exception {
AnalysisResult analysisResult = update("//test:xxx");
assertThat(getLabelsToBuild(analysisResult)).containsExactly("//test:xxx");
ConfiguredTarget target = analysisResult.getTargetsToBuild().iterator().next();
- SkylarkProviders skylarkProviders = target.getProvider(SkylarkProviders.class);
- assertThat(skylarkProviders).isNotNull();
- Object names = skylarkProviders.getValue("rule_deps");
+ Object names = target.get("rule_deps");
assertThat(names).isInstanceOf(SkylarkNestedSet.class);
assertThat(
transform(
@@ -716,8 +702,7 @@ public void aspectOnLabelAttr() throws Exception {
AnalysisResult analysisResult = update("//test:xxx");
ConfiguredTarget target = analysisResult.getTargetsToBuild().iterator().next();
- SkylarkProviders skylarkProviders = target.getProvider(SkylarkProviders.class);
- Object value = skylarkProviders.getValue("data");
+ Object value = target.get("data");
assertThat(value).isEqualTo("foo");
}
@@ -755,8 +740,7 @@ public void labelKeyedStringDictAllowsAspects() throws Exception {
AnalysisResult analysisResult = update("//test:xxx");
ConfiguredTarget target = analysisResult.getTargetsToBuild().iterator().next();
- SkylarkProviders skylarkProviders = target.getProvider(SkylarkProviders.class);
- Object value = skylarkProviders.getValue("data");
+ Object value = target.get("data");
assertThat(value).isEqualTo("yyy:zzz");
}
@@ -1610,7 +1594,7 @@ private void buildTargetAndCheckRuleInfo(String... expectedLabels) throws Except
ConfiguredTarget configuredTarget = result.getTargetsToBuild().iterator().next();
SkylarkNestedSet ruleInfoValue =
(SkylarkNestedSet)
- configuredTarget.getProvider(SkylarkProviders.class).getValue("rule_info");
+ configuredTarget.get("rule_info");
assertThat(ruleInfoValue.getSet(String.class))
.containsExactlyElementsIn(Arrays.asList(expectedLabels));
}
@@ -1689,8 +1673,7 @@ public void aspectOutputsToBinDirectory() throws Exception {
AnalysisResult analysisResult = update(ImmutableList.of(), "//foo:main");
ConfiguredTarget target = analysisResult.getTargetsToBuild().iterator().next();
NestedSet aspectFiles =
- ((SkylarkNestedSet) target.getProvider(SkylarkProviders.class).getValue("aspect_files"))
- .getSet(Artifact.class);
+ ((SkylarkNestedSet) target.get("aspect_files")).getSet(Artifact.class);
assertThat(transform(aspectFiles, new Function() {
@Override
public String apply(Artifact artifact) {
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
index 02abf939474865..d5dc696df8b334 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
@@ -30,7 +30,6 @@
import com.google.devtools.build.lib.analysis.OutputGroupProvider;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget;
import com.google.devtools.build.lib.analysis.RunfilesProvider;
-import com.google.devtools.build.lib.analysis.SkylarkProviders;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -178,10 +177,7 @@ public void testOutputGroups() throws Exception {
OutputGroupProvider.get(getConfiguredTarget("//test/skylark:lib"))
.getOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL);
ConfiguredTarget myTarget = getConfiguredTarget("//test/skylark:my");
- SkylarkNestedSet result =
- (SkylarkNestedSet) myTarget
- .getProvider(SkylarkProviders.class)
- .getValue("result");
+ SkylarkNestedSet result = (SkylarkNestedSet) myTarget.get("result");
assertThat(result.getSet(Artifact.class)).containsExactlyElementsIn(hiddenTopLevelArtifacts);
assertThat(OutputGroupProvider.get(myTarget).getOutputGroup("my_group"))
.containsExactlyElementsIn(hiddenTopLevelArtifacts);
@@ -206,10 +202,7 @@ public void testOutputGroupsDeclaredProvider() throws Exception {
OutputGroupProvider.get(getConfiguredTarget("//test/skylark:lib"))
.getOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL);
ConfiguredTarget myTarget = getConfiguredTarget("//test/skylark:my");
- SkylarkNestedSet result =
- (SkylarkNestedSet) myTarget
- .getProvider(SkylarkProviders.class)
- .getValue("result");
+ SkylarkNestedSet result = (SkylarkNestedSet) myTarget.get("result");
assertThat(result.getSet(Artifact.class)).containsExactlyElementsIn(hiddenTopLevelArtifacts);
assertThat(OutputGroupProvider.get(myTarget).getOutputGroup("my_group"))
.containsExactlyElementsIn(hiddenTopLevelArtifacts);
@@ -241,14 +234,13 @@ public void testOutputGroupsAsDictionary() throws Exception {
OutputGroupProvider.get(getConfiguredTarget("//test/skylark:lib"))
.getOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL);
ConfiguredTarget myTarget = getConfiguredTarget("//test/skylark:my");
- SkylarkProviders skylarkProviders = myTarget.getProvider(SkylarkProviders.class);
- SkylarkNestedSet result = (SkylarkNestedSet) skylarkProviders.getValue("result");
+ SkylarkNestedSet result = (SkylarkNestedSet) myTarget.get("result");
assertThat(result.getSet(Artifact.class)).containsExactlyElementsIn(hiddenTopLevelArtifacts);
assertThat(OutputGroupProvider.get(myTarget).getOutputGroup("my_group"))
.containsExactlyElementsIn(hiddenTopLevelArtifacts);
- assertThat(skylarkProviders.getValue("has_key1")).isEqualTo(Boolean.TRUE);
- assertThat(skylarkProviders.getValue("has_key2")).isEqualTo(Boolean.FALSE);
- assertThat((SkylarkList) skylarkProviders.getValue("all_keys"))
+ assertThat(myTarget.get("has_key1")).isEqualTo(Boolean.TRUE);
+ assertThat(myTarget.get("has_key2")).isEqualTo(Boolean.FALSE);
+ assertThat((SkylarkList) myTarget.get("all_keys"))
.containsExactly(
"_hidden_top_level" + INTERNAL_SUFFIX,
"compilation_prerequisites" + INTERNAL_SUFFIX,
@@ -276,9 +268,7 @@ public void testOutputGroupsAsDictionaryPipe() throws Exception {
OutputGroupProvider.get(getConfiguredTarget("//test/skylark:lib"))
.getOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL);
ConfiguredTarget myTarget = getConfiguredTarget("//test/skylark:my");
- SkylarkProviders skylarkProviders = myTarget
- .getProvider(SkylarkProviders.class);
- SkylarkNestedSet result = (SkylarkNestedSet) skylarkProviders.getValue("result");
+ SkylarkNestedSet result = (SkylarkNestedSet) myTarget.get("result");
assertThat(result.getSet(Artifact.class)).containsExactlyElementsIn(hiddenTopLevelArtifacts);
assertThat(OutputGroupProvider.get(myTarget).getOutputGroup("my_group"))
.containsExactlyElementsIn(hiddenTopLevelArtifacts);
@@ -305,7 +295,7 @@ public void testOutputGroupsWithList() throws Exception {
.getOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL);
ConfiguredTarget myTarget = getConfiguredTarget("//test/skylark:my");
SkylarkNestedSet result =
- (SkylarkNestedSet) myTarget.getProvider(SkylarkProviders.class).getValue("result");
+ (SkylarkNestedSet) myTarget.get("result");
assertThat(result.getSet(Artifact.class)).containsExactlyElementsIn(hiddenTopLevelArtifacts);
assertThat(OutputGroupProvider.get(myTarget).getOutputGroup("my_group"))
.containsExactlyElementsIn(hiddenTopLevelArtifacts);
@@ -334,7 +324,7 @@ public void testOutputGroupsDeclaredProviderWithList() throws Exception {
.getOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL);
ConfiguredTarget myTarget = getConfiguredTarget("//test/skylark:my");
SkylarkNestedSet result =
- (SkylarkNestedSet) myTarget.getProvider(SkylarkProviders.class).getValue("result");
+ (SkylarkNestedSet) myTarget.get("result");
assertThat(result.getSet(Artifact.class)).containsExactlyElementsIn(hiddenTopLevelArtifacts);
assertThat(OutputGroupProvider.get(myTarget).getOutputGroup("my_group"))
.containsExactlyElementsIn(hiddenTopLevelArtifacts);
@@ -1014,9 +1004,7 @@ public void rulesReturningDeclaredProviders() throws Exception {
ClassObjectConstructor.Key key = new SkylarkClassObjectConstructor.SkylarkKey(
Label.create(configuredTarget.getLabel().getPackageIdentifier(), "extension.bzl"),
"my_provider");
- SkylarkProviders skylarkProviders = configuredTarget.getProvider(SkylarkProviders.class);
- assertThat(skylarkProviders).isNotNull();
- SkylarkClassObject declaredProvider = skylarkProviders.getDeclaredProvider(key);
+ SkylarkClassObject declaredProvider = configuredTarget.get(key);
assertThat(declaredProvider).isNotNull();
assertThat(declaredProvider.getConstructor().getKey()).isEqualTo(key);
assertThat(declaredProvider.getValue("x")).isEqualTo(1);
@@ -1041,9 +1029,7 @@ public void rulesReturningDeclaredProvidersCompatMode() throws Exception {
ClassObjectConstructor.Key key = new SkylarkClassObjectConstructor.SkylarkKey(
Label.create(configuredTarget.getLabel().getPackageIdentifier(), "extension.bzl"),
"my_provider");
- SkylarkProviders skylarkProviders = configuredTarget.getProvider(SkylarkProviders.class);
- assertThat(skylarkProviders).isNotNull();
- SkylarkClassObject declaredProvider = skylarkProviders.getDeclaredProvider(key);
+ SkylarkClassObject declaredProvider = configuredTarget.get(key);
assertThat(declaredProvider).isNotNull();
assertThat(declaredProvider.getConstructor().getKey()).isEqualTo(key);
assertThat(declaredProvider.getValue("x")).isEqualTo(1);
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
index e872f8f280d5ac..442ec03b3f6d89 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
@@ -28,7 +28,6 @@
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.ActionsProvider;
import com.google.devtools.build.lib.analysis.FileConfiguredTarget;
-import com.google.devtools.build.lib.analysis.SkylarkProviders;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.cmdline.Label;
@@ -435,8 +434,7 @@ public void shouldGetPrerequisites() throws Exception {
TransitiveInfoCollection tic1 = (TransitiveInfoCollection) ((SkylarkList) result).get(0);
assertNotNull(JavaProvider.getProvider(JavaSourceJarsProvider.class, tic1));
// Check an unimplemented provider too
- assertNull(tic1.getProvider(SkylarkProviders.class)
- .getValue(PyCommon.PYTHON_SKYLARK_PROVIDER_NAME));
+ assertNull(tic1.get(PyCommon.PYTHON_SKYLARK_PROVIDER_NAME));
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
index 8c4be30028da24..138215fb28f535 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
@@ -33,7 +33,6 @@
import com.google.devtools.build.lib.analysis.DefaultProvider;
import com.google.devtools.build.lib.analysis.FilesToRunProvider;
import com.google.devtools.build.lib.analysis.Runfiles;
-import com.google.devtools.build.lib.analysis.SkylarkProviders;
import com.google.devtools.build.lib.analysis.actions.FileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.actions.TemplateExpansionAction;
@@ -888,37 +887,37 @@ public void testDefaultProvider() throws Exception {
"foo_rule(name = 'dep_rule', runs = ['run.file', 'run2.file'])",
"bar_rule(name = 'my_rule', deps = [':dep_rule', 'file.txt'])");
ConfiguredTarget configuredTarget = getConfiguredTarget("//test:my_rule");
- SkylarkProviders providers = configuredTarget.getProvider(SkylarkProviders.class);
- assertThat((Boolean) providers.getValue("is_provided")).isTrue();
+ assertThat((Boolean) configuredTarget.get("is_provided")).isTrue();
- Object provider = providers.getValue("provider");
+ Object provider = configuredTarget.get("provider");
assertThat(provider).isInstanceOf(DefaultProvider.class);
assertThat(((DefaultProvider) provider).getConstructor().getPrintableName())
.isEqualTo("DefaultInfo");
- assertThat(providers.getValue("dir"))
+ assertThat(configuredTarget.get("dir"))
.isEqualTo(
"[\"data_runfiles\", \"default_runfiles\", \"files\", \"files_to_run\", \"to_json\", "
+ "\"to_proto\"]");
- assertThat(providers.getValue("rule_data_runfiles")).isInstanceOf(Runfiles.class);
+ assertThat(configuredTarget.get("rule_data_runfiles")).isInstanceOf(Runfiles.class);
assertThat(
Iterables.transform(
- ((Runfiles) providers.getValue("rule_data_runfiles")).getAllArtifacts(), TO_STRING))
+ ((Runfiles) configuredTarget.get("rule_data_runfiles")).getAllArtifacts(),
+ TO_STRING))
.containsExactly(
"File:[/workspace[source]]test/run.file", "File:[/workspace[source]]test/run2.file");
- assertThat(providers.getValue("rule_default_runfiles")).isInstanceOf(Runfiles.class);
+ assertThat(configuredTarget.get("rule_default_runfiles")).isInstanceOf(Runfiles.class);
assertThat(
Iterables.transform(
- ((Runfiles) providers.getValue("rule_default_runfiles")).getAllArtifacts(),
+ ((Runfiles) configuredTarget.get("rule_default_runfiles")).getAllArtifacts(),
TO_STRING))
.containsExactly(
"File:[/workspace[source]]test/run.file", "File:[/workspace[source]]test/run2.file");
- assertThat(providers.getValue("rule_files")).isInstanceOf(SkylarkNestedSet.class);
- assertThat(providers.getValue("rule_files_to_run")).isInstanceOf(FilesToRunProvider.class);
+ assertThat(configuredTarget.get("rule_files")).isInstanceOf(SkylarkNestedSet.class);
+ assertThat(configuredTarget.get("rule_files_to_run")).isInstanceOf(FilesToRunProvider.class);
}
@Test
@@ -947,35 +946,35 @@ public void testDefaultProviderOnFileTarget() throws Exception {
"load(':bar.bzl', 'bar_rule')",
"bar_rule(name = 'my_rule', deps = ['file.txt'])");
ConfiguredTarget configuredTarget = getConfiguredTarget("//test:my_rule");
- SkylarkProviders providers = configuredTarget.getProvider(SkylarkProviders.class);
- assertThat((Boolean) providers.getValue("is_provided")).isTrue();
+ assertThat((Boolean) configuredTarget.get("is_provided")).isTrue();
- Object provider = providers.getValue("provider");
+ Object provider = configuredTarget.get("provider");
assertThat(provider).isInstanceOf(DefaultProvider.class);
assertThat(((DefaultProvider) provider).getConstructor().getPrintableName())
.isEqualTo("DefaultInfo");
- assertThat(providers.getValue("dir"))
+ assertThat(configuredTarget.get("dir"))
.isEqualTo(
"[\"data_runfiles\", \"default_runfiles\", \"files\", \"files_to_run\", \"to_json\", "
+ "\"to_proto\"]");
- assertThat(providers.getValue("file_data_runfiles")).isInstanceOf(Runfiles.class);
+ assertThat(configuredTarget.get("file_data_runfiles")).isInstanceOf(Runfiles.class);
assertThat(
Iterables.transform(
- ((Runfiles) providers.getValue("file_data_runfiles")).getAllArtifacts(), TO_STRING))
+ ((Runfiles) configuredTarget.get("file_data_runfiles")).getAllArtifacts(),
+ TO_STRING))
.isEmpty();
- assertThat(providers.getValue("file_default_runfiles")).isInstanceOf(Runfiles.class);
+ assertThat(configuredTarget.get("file_default_runfiles")).isInstanceOf(Runfiles.class);
assertThat(
Iterables.transform(
- ((Runfiles) providers.getValue("file_default_runfiles")).getAllArtifacts(),
+ ((Runfiles) configuredTarget.get("file_default_runfiles")).getAllArtifacts(),
TO_STRING))
.isEmpty();
- assertThat(providers.getValue("file_files")).isInstanceOf(SkylarkNestedSet.class);
- assertThat(providers.getValue("file_files_to_run")).isInstanceOf(FilesToRunProvider.class);
+ assertThat(configuredTarget.get("file_files")).isInstanceOf(SkylarkNestedSet.class);
+ assertThat(configuredTarget.get("file_files_to_run")).isInstanceOf(FilesToRunProvider.class);
}
@Test
@@ -1013,7 +1012,7 @@ public void testDefaultProviderProvidedImplicitly() throws Exception {
"foo_rule(name = 'dep_rule')",
"bar_rule(name = 'my_rule', deps = [':dep_rule'])");
ConfiguredTarget configuredTarget = getConfiguredTarget("//test:my_rule");
- Object provider = configuredTarget.getProvider(SkylarkProviders.class).getValue("default");
+ Object provider = configuredTarget.get("default");
assertThat(provider).isInstanceOf(DefaultProvider.class);
SkylarkClassObject defaultProvider = (DefaultProvider) provider;
assertThat((defaultProvider).getConstructor().getPrintableName())
@@ -1086,7 +1085,7 @@ public void testDeclaredProviders() throws Exception {
"foo_rule(name = 'dep_rule')",
"bar_rule(name = 'my_rule', deps = [':dep_rule'])");
ConfiguredTarget configuredTarget = getConfiguredTarget("//test:my_rule");
- Object provider = configuredTarget.getProvider(SkylarkProviders.class).getValue("proxy");
+ Object provider = configuredTarget.get("proxy");
assertThat(provider).isInstanceOf(SkylarkClassObject.class);
assertThat(((SkylarkClassObject) provider).getConstructor().getPrintableName())
.isEqualTo("foo_provider");
@@ -1132,7 +1131,7 @@ public void testDeclaredProvidersAliasTarget() throws Exception {
"alias(name = 'dep_rule', actual=':foo_rule')",
"bar_rule(name = 'my_rule', deps = [':dep_rule'])");
ConfiguredTarget configuredTarget = getConfiguredTarget("//test:my_rule");
- Object provider = configuredTarget.getProvider(SkylarkProviders.class).getValue("proxy");
+ Object provider = configuredTarget.get("proxy");
assertThat(provider).isInstanceOf(SkylarkClassObject.class);
assertThat(((SkylarkClassObject) provider).getConstructor().getPrintableName())
.isEqualTo("foo_provider");
@@ -1291,10 +1290,10 @@ public void testDeclaredProvidersInOperator() throws Exception {
"outer_rule(name = 'my_rule', deps = [':dep_rule'])");
ConfiguredTarget configuredTarget = getConfiguredTarget("//test:my_rule");
- Object foo = configuredTarget.getProvider(SkylarkProviders.class).getValue("foo");
+ Object foo = configuredTarget.get("foo");
assertThat(foo).isInstanceOf(Boolean.class);
assertThat((Boolean) foo).isTrue();
- Object bar = configuredTarget.getProvider(SkylarkProviders.class).getValue("bar");
+ Object bar = configuredTarget.get("bar");
assertThat(bar).isInstanceOf(Boolean.class);
assertThat((Boolean) bar).isFalse();
}