Extract configuration fragment access logic into ConfigurationFragmentPolicy.
This is the first step toward giving aspects the ability to define their own
required configuration fragments, extracting the required configuration
metadata into a common place.
This should be a no-op refactoring.
--
MOS_MIGRATED_REVID=104249500
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 06e068d..8053543 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
@@ -26,6 +26,7 @@
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.packages.AspectDefinition;
import com.google.devtools.build.lib.packages.Attribute;
+import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy;
import com.google.devtools.build.lib.packages.NoSuchPackageException;
import com.google.devtools.build.lib.packages.NoSuchTargetException;
import com.google.devtools.build.lib.packages.NoSuchThingException;
@@ -136,8 +137,10 @@
// Get configuration fragments directly required by this target.
if (target instanceof Rule) {
+ ConfigurationFragmentPolicy configurationFragmentPolicy =
+ target.getAssociatedRule().getRuleClassObject().getConfigurationFragmentPolicy();
Set<Class<?>> configFragments =
- target.getAssociatedRule().getRuleClassObject().getRequiredConfigurationFragments();
+ 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;