diff options
author | 2017-05-02 18:43:46 +0200 | |
---|---|---|
committer | 2017-05-03 10:56:17 +0200 | |
commit | e788964a6ebc2c4966456ac74044f4f44a126fe5 (patch) | |
tree | a2713247b9dcea7308aafa6235468f415f1696ed /src/main/java/com/google/devtools/build | |
parent | 5e924aff704b68f5b02c47672e4ac217c7376cf2 (diff) |
Remove superpowers from default provider.
RELNOTES: 'output_groups' and 'instrumented_files' cannot be specified in DefaultInfo.
PiperOrigin-RevId: 154842022
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java | 23 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java | 6 |
2 files changed, 16 insertions, 13 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java index 733f331e54..25c38d7a2d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java @@ -196,16 +196,19 @@ public class SkylarkRuleClassFunctions { returnType = ClassObjectConstructor.class, doc = "A provider that is provided by every rule, even if it iss not returned explicitly. " - + "A <code>DefaultInfo</code> accepts all special parameters that can be returned " - + "from rule implementation function in a struct, which are <code>runfiles</code>, " - + "<code>data_runfiles</code>, <code>default_runfiles</code>, <code>files</code>, " - + "<code>output_groups</code>, <code>instrumented_files</code>, and all " - + "<a href=\"skylark-provider.html\">providers</a> that are available on built-in " - + "rules. Each instance of the default provider contains the following standard " - + "fields: <code>data_runfiles</code>, <code>default_runfiles</code>, " - + "<code>files</code>, and <code>files_to_run</code>. The values of these fields " - + "are equivalent to the values of the corresponding fields of the target " - + "the default provider belongs to." + + "A <code>DefaultInfo</code> accepts the following parameters:" + + "<li><code>files</code></li>" + + "<ul><li><code>runfiles</code></li>" + + "<li><code>data_runfiles</code></li>" + + "<li><code>default_runfiles</code></li>" + + "</ul>" + + "Each instance of the default provider contains the following standard " + + "fields: " + + "<li><code>files</code></li>" + + "<li><code>files_to_run</code></li>" + + "<ul><li><code>data_runfiles</code></li>" + + "<li><code>default_runfiles</code></li>" + + "</ul>" ) private static final ClassObjectConstructor defaultInfo = DefaultProvider.SKYLARK_CONSTRUCTOR; diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java index f6900a2e70..350c4e00e2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java @@ -306,9 +306,9 @@ public final class SkylarkRuleConfiguredTargetBuilder { dataRunfiles = cast("data_runfiles", provider, Runfiles.class, loc); } else if (key.equals("default_runfiles")) { defaultRunfiles = cast("default_runfiles", provider, Runfiles.class, loc); - } else if (key.equals("output_groups")) { + } else if (key.equals("output_groups") && !isDefaultProvider) { addOutputGroups(provider.getValue(key), loc, builder); - } else if (key.equals("instrumented_files")) { + } else if (key.equals("instrumented_files") && !isDefaultProvider) { SkylarkClassObject insStruct = cast("instrumented_files", provider, SkylarkClassObject.class, loc); Location insLoc = insStruct.getCreationLoc(); @@ -348,7 +348,7 @@ public final class SkylarkRuleConfiguredTargetBuilder { InstrumentedFilesCollector.NO_METADATA_COLLECTOR, Collections.<Artifact>emptySet()); builder.addProvider(InstrumentedFilesProvider.class, instrumentedFilesProvider); - } else if (registeredProviderTypes.containsKey(key)) { + } else if (registeredProviderTypes.containsKey(key) && !isDefaultProvider) { Class<? extends TransitiveInfoProvider> providerType = registeredProviderTypes.get(key); TransitiveInfoProvider providerField = cast(key, provider, providerType, loc); builder.addProvider(providerType, providerField); |