From 7894c18dbaf237a1c02d76beabe6ca54faf5039a Mon Sep 17 00:00:00 2001 From: Lukacs Berki Date: Tue, 10 May 2016 12:07:01 +0000 Subject: Add an "alias" rule. This will be used to replace RedirectChaser so that we don't need to load packages during configuration creation anymore. -- MOS_MIGRATED_REVID=121935989 --- .../lib/skyframe/ConfiguredTargetFunction.java | 37 ++++++++++------------ 1 file changed, 17 insertions(+), 20 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java') diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java index 6fb86c8dec..33d68bba44 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java @@ -17,7 +17,7 @@ import com.google.common.base.Function; import com.google.common.base.Verify; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; import com.google.common.collect.LinkedListMultimap; import com.google.common.collect.ListMultimap; @@ -54,7 +54,6 @@ import com.google.devtools.build.lib.packages.AspectClass; import com.google.devtools.build.lib.packages.AspectDefinition; import com.google.devtools.build.lib.packages.AspectParameters; import com.google.devtools.build.lib.packages.Attribute; -import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException; import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.NoSuchTargetException; import com.google.devtools.build.lib.packages.NoSuchThingException; @@ -76,9 +75,9 @@ import com.google.devtools.build.skyframe.ValueOrException; import com.google.devtools.build.skyframe.ValueOrException2; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; @@ -92,8 +91,8 @@ import javax.annotation.Nullable; final class ConfiguredTargetFunction implements SkyFunction { // This construction is a bit funky, but guarantees that the Object reference here is globally // unique. - static final Set NO_CONFIG_CONDITIONS = - Collections.unmodifiableSet(ImmutableSet.of()); + static final ImmutableMap NO_CONFIG_CONDITIONS = + ImmutableMap.of(); /** * Exception class that signals an error during the evaluation of a dependency. @@ -159,13 +158,7 @@ final class ConfiguredTargetFunction implements SkyFunction { new ConfiguredValueCreationException(e.getMessage())); } if (pkg.containsErrors()) { - if (target == null) { - throw new ConfiguredTargetFunctionException(new ConfiguredValueCreationException( - new BuildFileContainsErrorsException( - lc.getLabel().getPackageIdentifier()).getMessage())); - } else { - transitiveLoadingRootCauses.add(lc.getLabel()); - } + transitiveLoadingRootCauses.add(lc.getLabel()); } transitivePackages.add(pkg); // TODO(bazel-team): This is problematic - we create the right key, but then end up with a value @@ -180,7 +173,7 @@ final class ConfiguredTargetFunction implements SkyFunction { SkyframeDependencyResolver resolver = view.createDependencyResolver(env); try { // Get the configuration targets that trigger this rule's configurable attributes. - Set configConditions = getConfigConditions( + ImmutableMap configConditions = getConfigConditions( ctgValue.getTarget(), env, resolver, ctgValue, transitivePackages, transitiveLoadingRootCauses); if (env.valuesMissing()) { @@ -265,7 +258,7 @@ final class ConfiguredTargetFunction implements SkyFunction { SkyframeDependencyResolver resolver, TargetAndConfiguration ctgValue, Aspect aspect, - Set configConditions, + ImmutableMap configConditions, RuleClassProvider ruleClassProvider, BuildConfiguration hostConfiguration, NestedSetBuilder transitivePackages, @@ -686,8 +679,8 @@ final class ConfiguredTargetFunction implements SkyFunction { * dependency resolver, returns null. */ @Nullable - static Set getConfigConditions(Target target, Environment env, - SkyframeDependencyResolver resolver, TargetAndConfiguration ctgValue, + static ImmutableMap getConfigConditions(Target target, + Environment env, SkyframeDependencyResolver resolver, TargetAndConfiguration ctgValue, NestedSetBuilder transitivePackages, NestedSetBuilder