From 63ecbdffe2330b85a57c8f82794f740ea6605d4b Mon Sep 17 00:00:00 2001 From: mjhalupka Date: Mon, 29 Jan 2018 15:15:26 -0800 Subject: Remove ConfiguredTarget.getTarget() call in TopLevelConstraintSemantics. Replace it with PackageManager.getTarget(). PiperOrigin-RevId: 183736074 --- .../constraints/TopLevelConstraintSemantics.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/analysis') diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/TopLevelConstraintSemantics.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/TopLevelConstraintSemantics.java index c5992f2402..54ad5859b7 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/TopLevelConstraintSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/TopLevelConstraintSemantics.java @@ -27,6 +27,7 @@ import com.google.devtools.build.lib.analysis.ViewCreationFailedException; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.configuredtargets.OutputFileConfiguredTarget; import com.google.devtools.build.lib.cmdline.Label; +import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.ExtendedEventHandler; import com.google.devtools.build.lib.packages.EnvironmentGroup; import com.google.devtools.build.lib.packages.NoSuchPackageException; @@ -93,18 +94,23 @@ public class TopLevelConstraintSemantics { Multimap exceptionInducingTargets = ArrayListMultimap.create(); for (ConfiguredTarget topLevelTarget : topLevelTargets) { BuildConfiguration config = topLevelTarget.getConfiguration(); + Target target = null; + try { + target = packageManager.getTarget(eventHandler, topLevelTarget.getLabel()); + } catch (NoSuchPackageException | NoSuchTargetException e) { + eventHandler.handle( + Event.error( + "Unable to get target from package when checking environment restrictions. " + e)); + continue; + } if (config == null) { // TODO(bazel-team): support file targets (they should apply package-default constraints). continue; } else if (!config.enforceConstraints()) { continue; // Constraint checking is disabled for all targets. - } else if (topLevelTarget.getTarget().getAssociatedRule() == null) { + } else if (target.getAssociatedRule() == null) { continue; - } else if (!topLevelTarget - .getTarget() - .getAssociatedRule() - .getRuleClassObject() - .supportsConstraintChecking()) { + } else if (!target.getAssociatedRule().getRuleClassObject().supportsConstraintChecking()) { continue; // This target doesn't participate in constraints. } -- cgit v1.2.3