diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java | 30 |
1 files changed, 11 insertions, 19 deletions
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 70d72331e5..0532d72990 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 @@ -65,7 +65,6 @@ import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyFunctionException; -import com.google.devtools.build.skyframe.SkyFunctionException.Transience; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; import com.google.devtools.build.skyframe.ValueOrException; @@ -151,8 +150,7 @@ final class ConfiguredTargetFunction implements SkyFunction { Package pkg = packageValue.getPackage(); if (pkg.containsErrors()) { throw new ConfiguredTargetFunctionException( - new BuildFileContainsErrorsException(lc.getLabel().getPackageIdentifier()), - Transience.PERSISTENT); + new BuildFileContainsErrorsException(lc.getLabel().getPackageIdentifier())); } Target target; try { @@ -169,14 +167,11 @@ final class ConfiguredTargetFunction implements SkyFunction { if (!target.isConfigurable()) { configuration = null; } - TargetAndConfiguration ctgValue = - new TargetAndConfiguration(target, configuration); SkyframeDependencyResolver resolver = view.createDependencyResolver(env); - if (resolver == null) { - return null; - } + TargetAndConfiguration ctgValue = + new TargetAndConfiguration(target, configuration); try { // Get the configuration targets that trigger this rule's configurable attributes. Set<ConfigMatchingProvider> configConditions = @@ -754,7 +749,7 @@ final class ConfiguredTargetFunction implements SkyFunction { if (events.hasErrors()) { analysisEnvironment.disable(target); throw new ConfiguredTargetFunctionException(new ConfiguredValueCreationException( - "Analysis of target '" + target.getLabel() + "' failed; build aborted")); + "Analysis of target '" + target.getLabel() + "' failed; build aborted")); } Preconditions.checkState(!analysisEnvironment.hasErrors(), "Analysis environment hasError() but no errors reported"); @@ -765,13 +760,16 @@ final class ConfiguredTargetFunction implements SkyFunction { analysisEnvironment.disable(target); Preconditions.checkNotNull(configuredTarget, target); + Map<Artifact, Action> generatingActions; + // Check for conflicting actions within this configured target (that indicates a bug in the + // rule implementation). try { - return new ConfiguredTargetValue(configuredTarget, - filterSharedActionsAndThrowIfConflict(analysisEnvironment.getRegisteredActions()), - transitivePackages.build()); + generatingActions = filterSharedActionsAndThrowIfConflict(analysisEnvironment.getRegisteredActions()); } catch (ActionConflictException e) { throw new ConfiguredTargetFunctionException(e); } + return new ConfiguredTargetValue( + configuredTarget, generatingActions, transitivePackages.build()); } static Map<Artifact, Action> filterSharedActionsAndThrowIfConflict(Iterable<Action> actions) @@ -794,7 +792,6 @@ final class ConfiguredTargetFunction implements SkyFunction { * a ConfiguredTargetValue. */ public static final class ConfiguredValueCreationException extends Exception { - public ConfiguredValueCreationException(String message) { super(message); } @@ -805,15 +802,10 @@ final class ConfiguredTargetFunction implements SkyFunction { * {@link ConfiguredTargetFunction#compute}. */ public static final class ConfiguredTargetFunctionException extends SkyFunctionException { - public ConfiguredTargetFunctionException(NoSuchTargetException e) { + public ConfiguredTargetFunctionException(NoSuchThingException e) { super(e, Transience.PERSISTENT); } - public ConfiguredTargetFunctionException( - BuildFileContainsErrorsException e, Transience transience) { - super(e, transience); - } - private ConfiguredTargetFunctionException(ConfiguredValueCreationException error) { super(error, Transience.PERSISTENT); } |