diff options
author | 2017-07-27 23:48:56 +0200 | |
---|---|---|
committer | 2017-07-28 10:44:54 +0200 | |
commit | 11da2203a00bb8121275d9a110190d7f70df1073 (patch) | |
tree | 97a5aab8d40af86af9a7068c91c17d2fdca1201c /src/main/java/com | |
parent | da4c959603280ded71ad8fbc2d30d4917b175750 (diff) |
Assert that declared providers are not TransitiveInfoProviders.
Also fix the remaining violations.
RELNOTES: None.
PiperOrigin-RevId: 163391215
Diffstat (limited to 'src/main/java/com')
21 files changed, 36 insertions, 59 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java index fb6fcf1a43..9b8be1f250 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 @@ -161,7 +161,7 @@ public abstract class AbstractConfiguredTarget LABEL_FIELD, FILES_FIELD, FilesToRunProvider.SKYLARK_NAME)); - if (getProvider(OutputGroupProvider.class) != null) { + if (get(OutputGroupProvider.SKYLARK_CONSTRUCTOR) != null) { result.add(OutputGroupProvider.SKYLARK_NAME); } addExtraSkylarkKeys(result::add); @@ -190,9 +190,6 @@ public abstract class AbstractConfiguredTarget if (providerKey.equals(DefaultProvider.SKYLARK_CONSTRUCTOR.getKey())) { return getDefaultProvider(); } - if (providerKey.equals(OutputGroupProvider.SKYLARK_CONSTRUCTOR.getKey())) { - return OutputGroupProvider.get(this); - } return rawGetSkylarkProvider(providerKey); } @@ -207,7 +204,7 @@ public abstract class AbstractConfiguredTarget @Override public final Object get(String providerKey) { if (OutputGroupProvider.SKYLARK_NAME.equals(providerKey)) { - return getProvider(OutputGroupProvider.class); + return get(OutputGroupProvider.SKYLARK_CONSTRUCTOR); } return rawGetSkylarkProvider(providerKey); } 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 6614c1a8a2..4e0c62b3f1 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 @@ -29,13 +29,11 @@ import com.google.devtools.build.lib.packages.AspectClass; import com.google.devtools.build.lib.packages.AspectDescriptor; import com.google.devtools.build.lib.packages.AspectParameters; import com.google.devtools.build.lib.packages.ClassObjectConstructor; -import com.google.devtools.build.lib.packages.ClassObjectConstructor.Key; import com.google.devtools.build.lib.packages.SkylarkClassObject; import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.util.Preconditions; import java.util.Arrays; -import java.util.LinkedHashMap; import java.util.Map; import java.util.TreeMap; import javax.annotation.Nullable; @@ -100,15 +98,12 @@ public final class ConfiguredAspect { } public SkylarkClassObject get(ClassObjectConstructor.Key key) { - if (OutputGroupProvider.SKYLARK_CONSTRUCTOR.getKey().equals(key)) { - return getProvider(OutputGroupProvider.class); - } return providers.getProvider(key); } public Object get(String legacyKey) { if (OutputGroupProvider.SKYLARK_NAME.equals(legacyKey)) { - return getProvider(OutputGroupProvider.class); + return get(OutputGroupProvider.SKYLARK_CONSTRUCTOR.getKey()); } return providers.getProvider(legacyKey); } @@ -133,10 +128,6 @@ public final class ConfiguredAspect { private final TransitiveInfoProviderMapBuilder providers = new TransitiveInfoProviderMapBuilder(); private final Map<String, NestedSetBuilder<Artifact>> outputGroupBuilders = new TreeMap<>(); - private final ImmutableMap.Builder<String, Object> skylarkProviderBuilder = - ImmutableMap.builder(); - private final LinkedHashMap<Key, SkylarkClassObject> - skylarkDeclaredProvidersBuilder = new LinkedHashMap<>(); private final RuleContext ruleContext; private final AspectDescriptor descriptor; @@ -221,23 +212,18 @@ public final class ConfiguredAspect { throw new EvalException( constructor.getLocation(), "All providers must be top level values"); } - ClassObjectConstructor.Key key = constructor.getKey(); - addDeclaredProvider(key, declaredProvider); + addDeclaredProvider(declaredProvider); return this; } - private void addDeclaredProvider(Key key, SkylarkClassObject declaredProvider) { - if (OutputGroupProvider.SKYLARK_CONSTRUCTOR.getKey().equals(key)) { - addProvider(OutputGroupProvider.class, (OutputGroupProvider) declaredProvider); - } else { - providers.put(declaredProvider); - } + private void addDeclaredProvider(SkylarkClassObject declaredProvider) { + providers.put(declaredProvider); } public Builder addNativeDeclaredProvider(SkylarkClassObject declaredProvider) { ClassObjectConstructor constructor = declaredProvider.getConstructor(); Preconditions.checkState(constructor.isExported()); - addDeclaredProvider(constructor.getKey(), declaredProvider); + addDeclaredProvider(declaredProvider); return this; } @@ -253,8 +239,7 @@ public final class ConfiguredAspect { throw new IllegalStateException( "OutputGroupProvider was provided explicitly; do not use addOutputGroup"); } - addDeclaredProvider(OutputGroupProvider.SKYLARK_CONSTRUCTOR.getKey(), - new OutputGroupProvider(outputGroups.build())); + addDeclaredProvider(new OutputGroupProvider(outputGroups.build())); } addProvider( diff --git a/src/main/java/com/google/devtools/build/lib/analysis/MergedConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/MergedConfiguredTarget.java index 2673fab7a6..ec5a58fb3e 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/MergedConfiguredTarget.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/MergedConfiguredTarget.java @@ -111,7 +111,7 @@ public final class MergedConfiguredTarget extends AbstractConfiguredTarget { TransitiveInfoProviderMapBuilder aspectProviders = new TransitiveInfoProviderMapBuilder(); if (mergedOutputGroupProvider != null) { - aspectProviders.add(mergedOutputGroupProvider); + aspectProviders.put(mergedOutputGroupProvider); } if (mergedExtraActionProviders != null) { aspectProviders.add(mergedExtraActionProviders); @@ -121,7 +121,7 @@ public final class MergedConfiguredTarget extends AbstractConfiguredTarget { TransitiveInfoProviderMap providers = aspect.getProviders(); for (int i = 0; i < providers.getProviderCount(); ++i) { Object providerKey = providers.getProviderKeyAt(i); - if (OutputGroupProvider.class.equals(providerKey) + if (OutputGroupProvider.SKYLARK_CONSTRUCTOR.getKey().equals(providerKey) || ExtraActionArtifactsProvider.class.equals(providerKey)) { continue; } @@ -163,7 +163,7 @@ public final class MergedConfiguredTarget extends AbstractConfiguredTarget { } for (ConfiguredAspect configuredAspect : aspects) { - OutputGroupProvider aspectProvider = OutputGroupProvider.get(configuredAspect);; + OutputGroupProvider aspectProvider = OutputGroupProvider.get(configuredAspect); if (aspectProvider == null) { continue; } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupProvider.java index ac96767286..9557410dfc 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupProvider.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupProvider.java @@ -58,7 +58,7 @@ import javax.annotation.Nullable; */ @Immutable public final class OutputGroupProvider extends SkylarkClassObject - implements TransitiveInfoProvider, SkylarkIndexable, Iterable<String> { + implements SkylarkIndexable, Iterable<String> { public static final String SKYLARK_NAME = "output_groups"; public static NativeClassObjectConstructor<OutputGroupProvider> SKYLARK_CONSTRUCTOR = @@ -128,7 +128,7 @@ public final class OutputGroupProvider extends SkylarkClassObject @Nullable public static OutputGroupProvider get(TransitiveInfoCollection collection) { - return collection.getProvider(OutputGroupProvider.class); + return collection.get(OutputGroupProvider.SKYLARK_CONSTRUCTOR); } @Nullable 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 c4afb4f546..821646843a 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 @@ -128,7 +128,7 @@ public final class RuleConfiguredTargetBuilder { } OutputGroupProvider outputGroupProvider = new OutputGroupProvider(outputGroups.build()); - addProvider(OutputGroupProvider.class, outputGroupProvider); + addNativeDeclaredProvider(outputGroupProvider); } TransitiveInfoProviderMap providers = providersBuilder.build(); diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapBuilder.java b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapBuilder.java index 38eb63d767..f46689c247 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProviderMapBuilder.java @@ -48,6 +48,10 @@ public class TransitiveInfoProviderMapBuilder { Class<? extends T> providerClass, T provider) { Preconditions.checkNotNull(providerClass); Preconditions.checkNotNull(provider); + Preconditions.checkState(!(provider instanceof SkylarkClassObject), + "Expose %s as native declared provider", + providerClass); + // TODO(arielb): throw an exception if the providerClass is already present? // This is enforced by aspects but RuleConfiguredTarget presents violations // particularly around LicensesProvider @@ -57,6 +61,10 @@ public class TransitiveInfoProviderMapBuilder { public TransitiveInfoProviderMapBuilder put(SkylarkClassObject classObject) { Preconditions.checkNotNull(classObject); + Preconditions.checkState(!(classObject instanceof TransitiveInfoProvider), + "Declared provider %s should not implement TransitiveInfoProvider", + classObject.getClass()); + providers.put(classObject.getConstructor().getKey(), classObject); return this; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java index 8d44854a39..901b2e2dde 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeviceScriptFixtureInfoProvider.java @@ -15,7 +15,6 @@ package com.google.devtools.build.lib.rules.android; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.NativeClassObjectConstructor; @@ -26,12 +25,11 @@ import com.google.devtools.build.lib.packages.SkylarkClassObject; * android_instrumentation_test}. */ @Immutable -public class AndroidDeviceScriptFixtureInfoProvider extends SkylarkClassObject - implements TransitiveInfoProvider { +public class AndroidDeviceScriptFixtureInfoProvider extends SkylarkClassObject { private static final String SKYLARK_NAME = "DeviceScriptFixtureInfo"; public static final NativeClassObjectConstructor<AndroidDeviceScriptFixtureInfoProvider> - ANDROID_DEVICE_SCRIPT_FIXTURE_INFO = + SKYLARK_CONSTRUCTOR = new NativeClassObjectConstructor<AndroidDeviceScriptFixtureInfoProvider>( AndroidDeviceScriptFixtureInfoProvider.class, SKYLARK_NAME) {}; @@ -42,7 +40,7 @@ public class AndroidDeviceScriptFixtureInfoProvider extends SkylarkClassObject public AndroidDeviceScriptFixtureInfoProvider( Artifact fixtureScript, NestedSet<Artifact> supportApks, boolean daemon, boolean strictExit) { - super(ANDROID_DEVICE_SCRIPT_FIXTURE_INFO, ImmutableMap.<String, Object>of()); + super(SKYLARK_CONSTRUCTOR, ImmutableMap.<String, Object>of()); this.fixtureScript = fixtureScript; this.supportApks = supportApks; this.daemon = daemon; diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidHostServiceFixtureInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidHostServiceFixtureInfoProvider.java index a554a39b3d..73ac9650e1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidHostServiceFixtureInfoProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidHostServiceFixtureInfoProvider.java @@ -16,7 +16,6 @@ package com.google.devtools.build.lib.rules.android; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.NativeClassObjectConstructor; @@ -27,8 +26,7 @@ import com.google.devtools.build.lib.packages.SkylarkClassObject; * android_instrumentation_test}. */ @Immutable -public class AndroidHostServiceFixtureInfoProvider extends SkylarkClassObject - implements TransitiveInfoProvider { +public class AndroidHostServiceFixtureInfoProvider extends SkylarkClassObject { private static final String SKYLARK_NAME = "HostServiceFixtureInfo"; static final NativeClassObjectConstructor<AndroidHostServiceFixtureInfoProvider> diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationInfoProvider.java index e151be796b..292b2f04ee 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationInfoProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationInfoProvider.java @@ -15,7 +15,6 @@ package com.google.devtools.build.lib.rules.android; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.NativeClassObjectConstructor; import com.google.devtools.build.lib.packages.SkylarkClassObject; @@ -25,8 +24,7 @@ import com.google.devtools.build.lib.packages.SkylarkClassObject; * AndroidInstrumentationTest}. */ @Immutable -public class AndroidInstrumentationInfoProvider extends SkylarkClassObject - implements TransitiveInfoProvider { +public class AndroidInstrumentationInfoProvider extends SkylarkClassObject { private static final String SKYLARK_NAME = "AndroidInstrumentationInfo"; static final NativeClassObjectConstructor<AndroidInstrumentationInfoProvider> diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTest.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTest.java index 26bf861d9a..2f3a178ac3 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTest.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidInstrumentationTest.java @@ -208,7 +208,7 @@ public class AndroidInstrumentationTest implements RuleConfiguredTargetFactory { .addTransitive(AndroidCommon.getSupportApks(ruleContext)); for (AndroidDeviceScriptFixtureInfoProvider fixture : ruleContext.getPrerequisites( - "fixtures", Mode.TARGET, AndroidDeviceScriptFixtureInfoProvider.class)) { + "fixtures", Mode.TARGET, AndroidDeviceScriptFixtureInfoProvider.SKYLARK_CONSTRUCTOR)) { allSupportApks.addTransitive(fixture.getSupportApks()); } for (AndroidHostServiceFixtureInfoProvider fixture : @@ -281,7 +281,7 @@ public class AndroidInstrumentationTest implements RuleConfiguredTargetFactory { return ruleContext.getPrerequisites( "fixtures", Mode.TARGET, - AndroidDeviceScriptFixtureInfoProvider.ANDROID_DEVICE_SCRIPT_FIXTURE_INFO); + AndroidDeviceScriptFixtureInfoProvider.SKYLARK_CONSTRUCTOR); } private static String getDeviceBrokerType(RuleContext ruleContext) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java index d3e51a418b..94a5dbfb26 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java @@ -684,7 +684,7 @@ public final class CcCommon { * toolchain. */ public static String computeCcFlags(RuleContext ruleContext, TransitiveInfoCollection toolchain) { - CcToolchainProvider toolchainProvider = toolchain.getProvider(CcToolchainProvider.class); + CcToolchainProvider toolchainProvider = toolchain.get(CcToolchainProvider.SKYLARK_CONSTRUCTOR); FeatureConfiguration featureConfiguration = CcCommon.configureFeatures(ruleContext, toolchainProvider); if (!featureConfiguration.actionIsConfigured( diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java index c464e57692..ef1879c8c2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java @@ -386,7 +386,6 @@ public class CcToolchain implements RuleConfiguredTargetFactory { RuleConfiguredTargetBuilder builder = new RuleConfiguredTargetBuilder(ruleContext) - .addProvider(ccProvider) .addNativeDeclaredProvider(ccProvider) .addNativeDeclaredProvider(makeVariableProvider) .addProvider( diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java index a41f06577f..79bbd99e86 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java @@ -16,7 +16,6 @@ package com.google.devtools.build.lib.rules.cpp; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; import com.google.devtools.build.lib.analysis.config.CompilationMode; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; @@ -40,8 +39,7 @@ import javax.annotation.Nullable; doc = "Information about the C++ compiler being used." ) @Immutable -public final class CcToolchainProvider - extends SkylarkClassObject implements TransitiveInfoProvider { +public final class CcToolchainProvider extends SkylarkClassObject { public static final String SKYLARK_NAME = "CcToolchainInfo"; public static final NativeClassObjectConstructor<CcToolchainProvider> SKYLARK_CONSTRUCTOR = diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuite.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuite.java index 83aa0fd8dc..8b44e561bf 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuite.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuite.java @@ -36,7 +36,7 @@ public class CcToolchainSuite implements RuleConfiguredTargetFactory { throws InterruptedException, RuleErrorException { NestedSetBuilder<Artifact> filesToBuild = NestedSetBuilder.stableOrder(); for (TransitiveInfoCollection dep : ruleContext.getPrerequisiteMap("toolchains").values()) { - CcToolchainProvider provider = dep.getProvider(CcToolchainProvider.class); + CcToolchainProvider provider = dep.get(CcToolchainProvider.SKYLARK_CONSTRUCTOR); if (provider != null) { filesToBuild.addTransitive(provider.getCrosstool()); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java index f1952e897d..f6d8e98893 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java @@ -313,11 +313,11 @@ public class CppHelper { public static CcToolchainProvider getToolchain(RuleContext ruleContext, TransitiveInfoCollection dep) { // TODO(bazel-team): Consider checking this generally at the attribute level. - if ((dep == null) || (dep.getProvider(CcToolchainProvider.class) == null)) { + if ((dep == null) || (dep.get(CcToolchainProvider.SKYLARK_CONSTRUCTOR) == null)) { ruleContext.ruleError("The selected C++ toolchain is not a cc_toolchain rule"); return CcToolchainProvider.EMPTY_TOOLCHAIN_IS_ERROR; } - return dep.getProvider(CcToolchainProvider.class); + return dep.get(CcToolchainProvider.SKYLARK_CONSTRUCTOR); } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java index 6d31017676..47aeaaacb6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java @@ -166,7 +166,6 @@ public class JavaImport implements RuleConfiguredTargetFactory { .addSkylarkTransitiveInfo( JavaSkylarkApiProvider.NAME, JavaSkylarkApiProvider.fromRuleContext()) .addNativeDeclaredProvider(javaProvider) - .addProvider(JavaProvider.class, javaProvider) .add(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider) .add( JavaRuntimeJarProvider.class, diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java index 3b46af3a1d..f1624d9e0a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java @@ -248,7 +248,6 @@ public class JavaLibrary implements RuleConfiguredTargetFactory { .addProvider(pluginInfoProvider) .addProvider(new ProguardSpecProvider(proguardSpecs)) .addProvider(sourceJarsProvider) - .addProvider(javaProvider) .addNativeDeclaredProvider(javaProvider) .addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars) .addOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL, proguardSpecs); 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 12ee7a3528..e691a4f1ce 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 @@ -34,7 +34,7 @@ import javax.annotation.Nullable; /** A Skylark declared provider that encapsulates all providers that are needed by Java rules. */ @Immutable -public final class JavaProvider extends SkylarkClassObject implements TransitiveInfoProvider { +public final class JavaProvider extends SkylarkClassObject { public static final NativeClassObjectConstructor<JavaProvider> JAVA_PROVIDER = new NativeClassObjectConstructor<JavaProvider>(JavaProvider.class, "java_common.provider") {}; diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoLibrary.java index 705f324584..1ab20943cd 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoLibrary.java @@ -110,7 +110,6 @@ public class JavaLiteProtoLibrary implements RuleConfiguredTargetFactory { .addProvider(javaRunfilesProvider) .addProvider(getJavaLiteRuntimeSpec(ruleContext)) .addProvider(JavaRuleOutputJarsProvider.EMPTY) - .addProvider(javaProvider) .addNativeDeclaredProvider(javaProvider) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java index 96cd2a71d8..425ccea91b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java @@ -100,7 +100,6 @@ public class JavaProtoLibrary implements RuleConfiguredTargetFactory { .addProvider(sourceJarsProvider) .addProvider(javaRunfilesProvider) .addProvider(JavaRuleOutputJarsProvider.EMPTY) - .addProvider(javaProvider) .addNativeDeclaredProvider(javaProvider) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java index dd78199c83..eee37b0089 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java @@ -56,7 +56,7 @@ public class MultiArchBinarySupport { // this attribute. b/28403953 tracks cc toolchain usage. ImmutableListMultimap<BuildConfiguration, CcToolchainProvider> configToProvider = ruleContext.getPrerequisitesByConfiguration( - ObjcRuleClasses.CHILD_CONFIG_ATTR, Mode.SPLIT, CcToolchainProvider.class); + ObjcRuleClasses.CHILD_CONFIG_ATTR, Mode.SPLIT, CcToolchainProvider.SKYLARK_CONSTRUCTOR); ImmutableMap.Builder<BuildConfiguration, CcToolchainProvider> result = ImmutableMap.builder(); for (BuildConfiguration config : configToProvider.keySet()) { |