diff options
author | Ulf Adams <ulfjack@google.com> | 2015-09-25 19:26:05 +0000 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@google.com> | 2015-09-28 11:39:35 +0000 |
commit | 9d43bd0218bdd60f30b462d31c2cc387b4bfa594 (patch) | |
tree | 69712f0c8e9de02c13ecd5b120c5b6f364457881 /src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetCycleReporter.java | |
parent | 869605e728d947645db70a9d1eb328d220f97929 (diff) |
Use the same method as LoadedPackageProvider.Bridge to look up targets.
This unfortunately requires injecting an EventHandler into the
getTargetForLabel call, which is not super nice. On the other hand, it's not
clear how this can be much better - looking up targets in the cycle reporter
doesn't lend itself to prettiness.
--
MOS_MIGRATED_REVID=103965373
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetCycleReporter.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetCycleReporter.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetCycleReporter.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetCycleReporter.java index e3aba5768c..d2803a28e5 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetCycleReporter.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetCycleReporter.java @@ -18,9 +18,10 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.devtools.build.lib.cmdline.Label; +import com.google.devtools.build.lib.events.EventHandler; import com.google.devtools.build.lib.packages.PackageGroup; import com.google.devtools.build.lib.packages.Target; -import com.google.devtools.build.lib.pkgcache.LoadedPackageProvider; +import com.google.devtools.build.lib.pkgcache.PackageProvider; import com.google.devtools.build.skyframe.CycleInfo; import com.google.devtools.build.skyframe.SkyKey; @@ -35,8 +36,8 @@ class TransitiveTargetCycleReporter extends AbstractLabelCycleReporter { private static final Predicate<SkyKey> IS_TRANSITIVE_TARGET_SKY_KEY = SkyFunctions.isSkyFunction(SkyFunctions.TRANSITIVE_TARGET); - TransitiveTargetCycleReporter(LoadedPackageProvider loadedPackageProvider) { - super(loadedPackageProvider); + TransitiveTargetCycleReporter(PackageProvider packageProvider) { + super(packageProvider); } @Override @@ -57,8 +58,9 @@ class TransitiveTargetCycleReporter extends AbstractLabelCycleReporter { } @Override - protected String getAdditionalMessageAboutCycle(SkyKey topLevelKey, CycleInfo cycleInfo) { - Target currentTarget = getTargetForLabel(getLabel(topLevelKey)); + protected String getAdditionalMessageAboutCycle( + EventHandler eventHandler, SkyKey topLevelKey, CycleInfo cycleInfo) { + Target currentTarget = getTargetForLabel(eventHandler, getLabel(topLevelKey)); List<SkyKey> keys = Lists.newArrayList(); if (!cycleInfo.getPathToCycle().isEmpty()) { keys.add(topLevelKey); @@ -70,7 +72,7 @@ class TransitiveTargetCycleReporter extends AbstractLabelCycleReporter { keys.add(cycleInfo.getCycle().get(0)); for (SkyKey nextKey : keys) { Label nextLabel = getLabel(nextKey); - Target nextTarget = getTargetForLabel(nextLabel); + Target nextTarget = getTargetForLabel(eventHandler, nextLabel); // This is inefficient but it's no big deal since we only do this when there's a cycle. if (currentTarget.getVisibility().getDependencyLabels().contains(nextLabel) && !nextTarget.getTargetKind().equals(PackageGroup.targetKind())) { |