aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-08-10 09:03:26 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-10 09:04:58 -0700
commit3df620a1ef16e81780d7af40cd2dfa3251d40668 (patch)
treef1bd2797215caa3c0e8c6693b32211c98cdbf9f2 /src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
parentfc0654ff3798309c8b412220b1202f12059fd1ff (diff)
Persist mappings from original command line patterns to expanded labels in TargetParsingCompleteEvent.
PiperOrigin-RevId: 208217102
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
index 955649065e..afd09b5781 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java
@@ -13,10 +13,13 @@
// limitations under the License.
package com.google.devtools.build.lib.skyframe;
+import static com.google.common.collect.ImmutableSetMultimap.flatteningToImmutableSetMultimap;
+
import com.google.auto.value.AutoValue;
import com.google.common.base.Preconditions;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.ImmutableSetMultimap;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
import com.google.devtools.build.lib.cmdline.Label;
@@ -218,7 +221,8 @@ final class TargetPatternPhaseFunction implements SkyFunction {
testFilteredTargets,
options.getTargetPatterns(),
expandedTargets.getTargets(),
- failedPatterns));
+ failedPatterns,
+ mapOriginalPatternsToLabels(expandedPatterns, targets.getTargets())));
env.getListener()
.post(new LoadingPhaseCompleteEvent(result.getTargetLabels(), removedTargetLabels));
return result;
@@ -436,6 +440,23 @@ final class TargetPatternPhaseFunction implements SkyFunction {
return testTargetsBuilder.build();
}
+ private static ImmutableSetMultimap<String, Label> mapOriginalPatternsToLabels(
+ List<ExpandedPattern> expandedPatterns, Set<Target> includedTargets) {
+ return expandedPatterns
+ .stream()
+ .filter(expansion -> !expansion.pattern().isNegative())
+ .collect(
+ flatteningToImmutableSetMultimap(
+ expansion -> expansion.pattern().getPattern(),
+ expansion ->
+ expansion
+ .resolvedTargets()
+ .getTargets()
+ .stream()
+ .filter(includedTargets::contains)
+ .map(Target::getLabel)));
+ }
+
@Nullable
@Override
public String extractTag(SkyKey skyKey) {