Use Set<Target> instead of ResolvedTargets<Target> when saving resolved target patterns in query.
We never use anything but the getTargets() field, so it's useless to store other things.
--
MOS_MIGRATED_REVID=100846573
diff --git a/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
index cc2068c..db8ed2d 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
@@ -267,7 +267,7 @@
@Override
public Set<Target> getTargetsMatchingPattern(QueryExpression owner, String pattern)
throws QueryException {
- Set<Target> targets = new LinkedHashSet<>(resolvedTargetPatterns.get(pattern).getTargets());
+ Set<Target> targets = new LinkedHashSet<>(resolvedTargetPatterns.get(pattern));
// Sets.filter would be more convenient here, but can't deal with exceptions.
Iterator<Target> targetIterator = targets.iterator();
@@ -367,11 +367,12 @@
}
@Override
- protected Map<String, ResolvedTargets<Target>> preloadOrThrow(QueryExpression caller,
- Collection<String> patterns) throws QueryException, TargetParsingException {
+ protected Map<String, Set<Target>> preloadOrThrow(
+ QueryExpression caller, Collection<String> patterns)
+ throws QueryException, TargetParsingException {
GraphBackedRecursivePackageProvider provider =
new GraphBackedRecursivePackageProvider(graph, universeTargetPatternKeys);
- Map<String, ResolvedTargets<Target>> result = Maps.newHashMapWithExpectedSize(patterns.size());
+ Map<String, Set<Target>> result = Maps.newHashMapWithExpectedSize(patterns.size());
for (String pattern : patterns) {
SkyKey patternKey = TargetPatternValue.key(pattern,
TargetPatternEvaluator.DEFAULT_FILTERING_POLICY, parserPrefix);
@@ -387,7 +388,7 @@
ResolvedTargets.Builder<Target> targetsBuilder = ResolvedTargets.builder();
targetsBuilder.addAll(makeTargetsFromLabels(value.getTargets().getTargets()));
targetsBuilder.removeAll(makeTargetsFromLabels(value.getTargets().getFilteredTargets()));
- result.put(pattern, targetsBuilder.build());
+ result.put(pattern, targetsBuilder.build().getTargets());
} else {
// Because the graph was always initialized via a keep_going build, we know that the
// exception stored here must be a TargetParsingException. Thus the comment in
@@ -405,7 +406,7 @@
targetPatternKey.getPolicy(), pkgPath);
TargetPattern parsedPattern = targetPatternKey.getParsedPattern();
try {
- result.put(pattern, parsedPattern.eval(resolver));
+ result.put(pattern, parsedPattern.eval(resolver).getTargets());
} catch (TargetParsingException e) {
targetParsingException = e;
} catch (InterruptedException e) {
@@ -419,7 +420,7 @@
} else {
eventHandler.handle(Event.error("Evaluation of query \"" + caller + "\" failed: "
+ targetParsingException.getMessage()));
- result.put(pattern, ResolvedTargets.<Target>builder().setError().build());
+ result.put(pattern, ImmutableSet.<Target>of());
}
}
}