aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
diff options
context:
space:
mode:
authorGravatar Greg Estren <gregce@google.com>2015-10-27 21:15:24 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2015-10-28 16:02:20 +0000
commit955a23aa730d8b397ac6684c06fd657f8d75b0bf (patch)
tree061cc445e9d53083ed660fae062a55f92965276d /src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
parent0eeeae14d4a666eb87e1c5965a9ee78df2a32a57 (diff)
Change default for rule classes that don't explicitly
declare required configuration fragments: from *everything* to *nothing*. Now that all builtin rules properly declare their fragments, the "backwards compatibility" concern that inspired the original behavior is no longer needed. This impacts, for example, filegroup rules, which have nothing to declare. -- MOS_MIGRATED_REVID=106433791
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java20
1 files changed, 1 insertions, 19 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
index a5e6320970..bc39fe11e5 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
@@ -14,11 +14,9 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Fragment;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -141,12 +139,7 @@ public class TransitiveTargetFunction
if (target instanceof Rule) {
ConfigurationFragmentPolicy configurationFragmentPolicy =
target.getAssociatedRule().getRuleClassObject().getConfigurationFragmentPolicy();
- Set<Class<?>> configFragments =
- configurationFragmentPolicy.getRequiredConfigurationFragments();
- // An empty result means this rule requires all fragments (which practically means
- // the rule isn't yet declaring its actually needed fragments). So load everything.
- configFragments = configFragments.isEmpty() ? getAllFragments() : configFragments;
- for (Class<?> fragment : configFragments) {
+ for (Class<?> fragment : configurationFragmentPolicy.getRequiredConfigurationFragments()) {
if (!builder.getConfigFragmentsFromDeps().contains(fragment)) {
builder.getTransitiveConfigFragments().add(
fragment.asSubclass(BuildConfiguration.Fragment.class));
@@ -212,17 +205,6 @@ public class TransitiveTargetFunction
}
/**
- * Returns every configuration fragment known to the system.
- */
- private Set<Class<?>> getAllFragments() {
- ImmutableSet.Builder<Class<?>> builder = ImmutableSet.builder();
- for (ConfigurationFragmentFactory factory : ruleClassProvider.getConfigurationFragments()) {
- builder.add(factory.creates());
- }
- return builder.build();
- }
-
- /**
* Holds values accumulated across the given target and its transitive dependencies for the
* purpose of constructing a {@link TransitiveTargetValue}.
*