diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/BUILD index da5080b321f4f7..796e733fe271f5 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BUILD +++ b/src/main/java/com/google/devtools/build/lib/analysis/BUILD @@ -713,6 +713,7 @@ java_library( deps = [ ":aspect_collection", ":config/transitions/configuration_transition", + ":dependency", "//src/main/java/com/google/devtools/build/lib/cmdline", "//third_party:auto_value", ], diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DependencyKey.java b/src/main/java/com/google/devtools/build/lib/analysis/DependencyKey.java index f7ba38174ebf4c..61e7c12b9e22a5 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/DependencyKey.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/DependencyKey.java @@ -53,4 +53,8 @@ public static Builder builder() { /** Returns the aspects that are propagating to the target this dependency points to. */ public abstract AspectCollection getAspects(); + + public Dependency.Builder getDependencyBuilder() { + return Dependency.builder().setLabel(getLabel()); + } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java index c9612dd0bf6849..8070b665cfddb8 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java @@ -99,6 +99,11 @@ static Builder builder() { return new AutoValue_DependencyResolver_PartiallyResolvedDependency.Builder() .setPropagatingAspects(ImmutableList.of()); } + + public DependencyKey.Builder getDependencyKeyBuilder() { + return DependencyKey.builder() + .setLabel(getLabel()); + } } /** @@ -198,8 +203,7 @@ public final OrderedSetMultimap dependentNodeMap( OrderedSetMultimap outgoingLabels = OrderedSetMultimap.create(); // TODO(bazel-team): Figure out a way to implement the below (and partiallyResolveDependencies) - // using - // LabelVisitationUtils. + // using LabelVisitationUtils. Rule fromRule = null; ConfiguredAttributeMapper attributeMap = null; if (target instanceof OutputFile) { @@ -366,9 +370,9 @@ private OrderedSetMultimap fullyResolveDependenci for (Map.Entry entry : partiallyResolvedDeps.entries()) { - PartiallyResolvedDependency dep = entry.getValue(); + PartiallyResolvedDependency partiallyResolvedDependency = entry.getValue(); - Target toTarget = targetMap.get(dep.getLabel()); + Target toTarget = targetMap.get(partiallyResolvedDependency.getLabel()); if (toTarget == null) { // Dependency pointing to non-existent target. This error was reported in getTargets(), so // we can just ignore this dependency. @@ -377,15 +381,15 @@ private OrderedSetMultimap fullyResolveDependenci ConfigurationTransition transition = TransitionResolver.evaluateTransition( - originalConfiguration, dep.getTransition(), toTarget, trimmingTransitionFactory); + originalConfiguration, partiallyResolvedDependency.getTransition(), toTarget, trimmingTransitionFactory); AspectCollection requiredAspects = - filterPropagatingAspects(dep.getPropagatingAspects(), toTarget); + filterPropagatingAspects(partiallyResolvedDependency.getPropagatingAspects(), toTarget); + DependencyKey.Builder dependencyKeyBuilder = partiallyResolvedDependency.getDependencyKeyBuilder(); outgoingEdges.put( entry.getKey(), - DependencyKey.builder() - .setLabel(dep.getLabel()) + dependencyKeyBuilder .setTransition(transition) .setAspects(requiredAspects) .build()); diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java index 242cdd0ce089a8..81f311eaa3cd76 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java @@ -178,7 +178,7 @@ private ImmutableList resolveConfiguration( DependencyKind dependencyKind, DependencyKey dependencyKey) throws DependencyEvaluationException, ValueMissingException, InterruptedException { - Dependency.Builder dependencyBuilder = Dependency.builder().setLabel(dependencyKey.getLabel()); + Dependency.Builder dependencyBuilder = dependencyKey.getDependencyBuilder(); ConfigurationTransition transition = dependencyKey.getTransition(); if (transition == NullTransition.INSTANCE) {