diff options
author | 2018-06-12 04:56:24 -0700 | |
---|---|---|
committer | 2018-06-12 04:57:48 -0700 | |
commit | ede315264b2191baf76d4cb76bbcf5db85da2630 (patch) | |
tree | fa8c1c7435d3893f014e7c93cbfac9ed815faf49 /src/main/java/com/google/devtools/build/lib/rules/genquery | |
parent | 6abc7497941dd81c27674d6636090867ea13101f (diff) |
Split TargetPatternEvaluator into two interfaces
- the TargetPatternPreloader is still used for query in all its forms
- the remaining TargetPatternEvaluator part is no longer used except in tests
- also make both implementations stateless and pass the offset to the methods
instead; note that they both modify the underlying skyframe graph, so there
are side effects to the calls even if there's no direct state anymore
The intent is to migrate the relevant tests to LoadingPhaseRunnerTest (which
could also now be renamed since it's not doing a loading phase), and then
delete the TargetPatternEvaluator interface.
This depends on the previous commit that removed the last direct use of TPE
from an internal command.
PiperOrigin-RevId: 200198067
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/genquery')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java | 49 |
1 files changed, 13 insertions, 36 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java index 00a51524df..4ae0c1a0b8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java +++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java @@ -52,9 +52,8 @@ import com.google.devtools.build.lib.packages.NoSuchTargetException; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.pkgcache.FilteringPolicies; -import com.google.devtools.build.lib.pkgcache.FilteringPolicy; import com.google.devtools.build.lib.pkgcache.PackageProvider; -import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator; +import com.google.devtools.build.lib.pkgcache.TargetPatternPreloader; import com.google.devtools.build.lib.query2.BlazeQueryEnvironment; import com.google.devtools.build.lib.query2.QueryEnvironmentFactory; import com.google.devtools.build.lib.query2.engine.DigraphQueryEvalResult; @@ -279,10 +278,10 @@ public class GenQuery implements RuleConfiguredTargetFactory { ImmutableMap<Label, Target> validTargetsMap = closureInfo.second; PreloadedMapPackageProvider packageProvider = new PreloadedMapPackageProvider(packageMap, validTargetsMap); - TargetPatternEvaluator evaluator = new SkyframeEnvTargetPatternEvaluator(env); + TargetPatternPreloader preloader = new SkyframeEnvTargetPatternEvaluator(env); Predicate<Label> labelFilter = Predicates.in(validTargetsMap.keySet()); - return doQuery(queryOptions, packageProvider, labelFilter, evaluator, query, ruleContext); + return doQuery(queryOptions, packageProvider, labelFilter, preloader, query, ruleContext); } @SuppressWarnings("unchecked") @@ -291,7 +290,7 @@ public class GenQuery implements RuleConfiguredTargetFactory { QueryOptions queryOptions, PreloadedMapPackageProvider packageProvider, Predicate<Label> labelFilter, - TargetPatternEvaluator evaluator, + TargetPatternPreloader preloader, String query, RuleContext ruleContext) throws InterruptedException { @@ -330,7 +329,8 @@ public class GenQuery implements RuleConfiguredTargetFactory { /* graphFactory= */ null, packageProvider, packageProvider, - evaluator, + preloader, + PathFragment.EMPTY_FRAGMENT, /*keepGoing=*/ false, ruleContext.attributes().get("strict", Type.BOOLEAN), /*orderedResults=*/ !QueryOutputUtils.shouldStreamResults( @@ -396,7 +396,7 @@ public class GenQuery implements RuleConfiguredTargetFactory { * Provide target pattern evaluation to the query operations using Skyframe dep lookup. For thread * safety, we must synchronize access to the SkyFunction.Environment. */ - private static final class SkyframeEnvTargetPatternEvaluator implements TargetPatternEvaluator { + private static final class SkyframeEnvTargetPatternEvaluator implements TargetPatternPreloader { private final SkyFunction.Environment env; public SkyframeEnvTargetPatternEvaluator(SkyFunction.Environment env) { @@ -415,9 +415,13 @@ public class GenQuery implements RuleConfiguredTargetFactory { @Override public Map<String, ResolvedTargets<Target>> preloadTargetPatterns( - ExtendedEventHandler eventHandler, Collection<String> patterns, boolean keepGoing) - throws TargetParsingException, InterruptedException { + ExtendedEventHandler eventHandler, + PathFragment relativeWorkingDirectory, + Collection<String> patterns, + boolean keepGoing) + throws TargetParsingException, InterruptedException { Preconditions.checkArgument(!keepGoing); + Preconditions.checkArgument(relativeWorkingDirectory.isEmpty()); boolean ok = true; Map<String, ResolvedTargets<Target>> preloadedPatterns = Maps.newHashMapWithExpectedSize(patterns.size()); @@ -498,33 +502,6 @@ public class GenQuery implements RuleConfiguredTargetFactory { String.format("recursive target patterns are not permitted: '%s''", pattern)); } } - - @Override - public ResolvedTargets<Target> parseTargetPatternList( - ExtendedEventHandler eventHandler, - List<String> targetPatterns, - FilteringPolicy policy, - boolean keepGoing) - throws TargetParsingException { - throw new UnsupportedOperationException(); - } - - @Override - public ResolvedTargets<Target> parseTargetPattern( - ExtendedEventHandler eventHandler, String pattern, boolean keepGoing) - throws TargetParsingException { - throw new UnsupportedOperationException(); - } - - @Override - public void updateOffset(PathFragment relativeWorkingDirectory) { - throw new UnsupportedOperationException(); - } - - @Override - public String getOffset() { - throw new UnsupportedOperationException(); - } } /** |