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 ConfiguredTargets 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 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(); }