aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
diff options
context:
space:
mode:
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.java30
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);
}