diff options
Diffstat (limited to 'src/main')
12 files changed, 112 insertions, 124 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/CqueryBuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/CqueryBuildTool.java index 2bdd2b7750..1b9628e952 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/CqueryBuildTool.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/CqueryBuildTool.java @@ -47,7 +47,7 @@ public class CqueryBuildTool extends PostAnalysisQueryBuildTool { extraFunctions, targetConfig, hostConfiguration, - env.newTargetPatternEvaluator().getOffset(), + env.getRelativeWorkingDirectory().getPathString(), env.getPackageManager().getPackagePath(), () -> walkableGraph, cqueryOptions); diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/PackageManager.java b/src/main/java/com/google/devtools/build/lib/pkgcache/PackageManager.java index 0bbfae7ced..13f38cd1e5 100644 --- a/src/main/java/com/google/devtools/build/lib/pkgcache/PackageManager.java +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/PackageManager.java @@ -59,7 +59,7 @@ public interface PackageManager extends PackageProvider, CachingPackageLocator { /** * Retrieve a target pattern parser that works with this package manager. */ - TargetPatternEvaluator newTargetPatternEvaluator(); + TargetPatternPreloader newTargetPatternPreloader(); /** * Construct a new {@link TransitivePackageLoader}. diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluator.java b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluator.java index a9e69bd5b4..ea2651d6ab 100644 --- a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluator.java +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluator.java @@ -14,17 +14,13 @@ package com.google.devtools.build.lib.pkgcache; -import com.google.common.annotations.VisibleForTesting; import com.google.devtools.build.lib.cmdline.ResolvedTargets; import com.google.devtools.build.lib.cmdline.TargetParsingException; import com.google.devtools.build.lib.concurrent.ThreadSafety; -import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadHostile; import com.google.devtools.build.lib.events.ExtendedEventHandler; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.vfs.PathFragment; -import java.util.Collection; import java.util.List; -import java.util.Map; /** * A parser for target patterns. Target patterns are a generalisation of @@ -50,49 +46,10 @@ public interface TargetPatternEvaluator { * computed. Implements the specification described in the class-level comment. */ ResolvedTargets<Target> parseTargetPatternList( + PathFragment relativeWorkingDirectory, ExtendedEventHandler eventHandler, List<String> targetPatterns, FilteringPolicy policy, boolean keepGoing) throws TargetParsingException, InterruptedException; - - /** - * Attempts to parse a single target pattern while consulting the package cache to check for the - * existence of packages and directories and the build targets in them. Implements the - * specification described in the class-level comment. Returns a {@link ResolvedTargets} object. - * - * <p>If an error is encountered, a {@link TargetParsingException} is thrown, unless {@code - * keepGoing} is set to true. In that case, the returned object will have its error bit set. - */ - ResolvedTargets<Target> parseTargetPattern( - ExtendedEventHandler eventHandler, String pattern, boolean keepGoing) - throws TargetParsingException, InterruptedException; - - /** - * Attempts to parse and load the given collection of patterns; the returned map contains the - * results for each pattern successfully parsed. - * - * <p>If an error is encountered, a {@link TargetParsingException} is thrown, unless {@code - * keepGoing} is set to true. In that case, the patterns that failed to load have the error flag - * set. - */ - Map<String, ResolvedTargets<Target>> preloadTargetPatterns( - ExtendedEventHandler eventHandler, Collection<String> patterns, boolean keepGoing) - throws TargetParsingException, InterruptedException; - - /** - * Update the parser's offset, given the workspace and working directory. - * - * @param relativeWorkingDirectory the working directory relative to the workspace - */ - @ThreadHostile - void updateOffset(PathFragment relativeWorkingDirectory); - - /** - * @return the offset of this parser from the root of the workspace. - * Non-absolute package-names will be resolved relative - * to this offset. - */ - @VisibleForTesting - String getOffset(); } diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternPreloader.java b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternPreloader.java new file mode 100644 index 0000000000..3b89098be2 --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternPreloader.java @@ -0,0 +1,46 @@ +// Copyright 2018 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.devtools.build.lib.pkgcache; + +import com.google.devtools.build.lib.cmdline.ResolvedTargets; +import com.google.devtools.build.lib.cmdline.TargetParsingException; +import com.google.devtools.build.lib.concurrent.ThreadSafety; +import com.google.devtools.build.lib.events.ExtendedEventHandler; +import com.google.devtools.build.lib.packages.Target; +import com.google.devtools.build.lib.vfs.PathFragment; +import java.util.Collection; +import java.util.Map; + +/** + * A preloader for target patterns. See {@link TargetPatternEvaluator} for more details. + */ +@ThreadSafety.ThreadSafe +public interface TargetPatternPreloader { + /** + * Attempts to parse and load the given collection of patterns; the returned map contains the + * results for each pattern successfully parsed. As a side effect, calling this method populates + * the Skyframe graph, so subsequent calls are faster. + * + * <p>If an error is encountered, a {@link TargetParsingException} is thrown, unless {@code + * keepGoing} is set to true. In that case, the patterns that failed to load have the error flag + * set. + */ + Map<String, ResolvedTargets<Target>> preloadTargetPatterns( + ExtendedEventHandler eventHandler, + PathFragment relativeWorkingDirectory, + Collection<String> patterns, + boolean keepGoing) + throws TargetParsingException, InterruptedException; +} diff --git a/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java index 68ab117f37..62cc674d31 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java @@ -35,7 +35,7 @@ import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.pkgcache.TargetEdgeObserver; -import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator; +import com.google.devtools.build.lib.pkgcache.TargetPatternPreloader; import com.google.devtools.build.lib.pkgcache.TargetProvider; import com.google.devtools.build.lib.pkgcache.TransitivePackageLoader; import com.google.devtools.build.lib.query2.engine.Callback; @@ -71,7 +71,8 @@ import java.util.Set; public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target> { private static final int MAX_DEPTH_FULL_SCAN_LIMIT = 20; private final Map<String, Set<Target>> resolvedTargetPatterns = new HashMap<>(); - private final TargetPatternEvaluator targetPatternEvaluator; + private final TargetPatternPreloader targetPatternPreloader; + private final PathFragment relativeWorkingDirectory; private final TransitivePackageLoader transitivePackageLoader; private final TargetProvider targetProvider; private final CachingPackageLocator cachingPackageLocator; @@ -98,7 +99,8 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target> TransitivePackageLoader transitivePackageLoader, TargetProvider targetProvider, CachingPackageLocator cachingPackageLocator, - TargetPatternEvaluator targetPatternEvaluator, + TargetPatternPreloader targetPatternPreloader, + PathFragment relativeWorkingDirectory, boolean keepGoing, boolean strictScope, int loadingPhaseThreads, @@ -107,7 +109,8 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target> Set<Setting> settings, Iterable<QueryFunction> extraFunctions) { super(keepGoing, strictScope, labelFilter, eventHandler, settings, extraFunctions); - this.targetPatternEvaluator = targetPatternEvaluator; + this.targetPatternPreloader = targetPatternPreloader; + this.relativeWorkingDirectory = relativeWorkingDirectory; this.transitivePackageLoader = transitivePackageLoader; this.targetProvider = targetProvider; this.cachingPackageLocator = cachingPackageLocator; @@ -441,7 +444,8 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target> // being called from within a SkyFunction. resolvedTargetPatterns.putAll( Maps.transformValues( - targetPatternEvaluator.preloadTargetPatterns(eventHandler, patterns, keepGoing), + targetPatternPreloader.preloadTargetPatterns( + eventHandler, relativeWorkingDirectory, patterns, keepGoing), ResolvedTargets::getTargets)); } } diff --git a/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java b/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java index 3c02da6fe8..e7cc8820d4 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java +++ b/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java @@ -21,11 +21,12 @@ import com.google.devtools.build.lib.packages.CachingPackageLocator; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.pkgcache.PathPackageLocator; -import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator; +import com.google.devtools.build.lib.pkgcache.TargetPatternPreloader; import com.google.devtools.build.lib.pkgcache.TargetProvider; import com.google.devtools.build.lib.pkgcache.TransitivePackageLoader; import com.google.devtools.build.lib.query2.engine.QueryEnvironment.QueryFunction; import com.google.devtools.build.lib.query2.engine.QueryEnvironment.Setting; +import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.WalkableGraph.WalkableGraphFactory; import java.util.List; import java.util.Set; @@ -40,7 +41,8 @@ public class QueryEnvironmentFactory { WalkableGraphFactory graphFactory, TargetProvider targetProvider, CachingPackageLocator cachingPackageLocator, - TargetPatternEvaluator targetPatternEvaluator, + TargetPatternPreloader targetPatternPreloader, + PathFragment relativeWorkingDirectory, boolean keepGoing, boolean strictScope, boolean orderedResults, @@ -60,7 +62,7 @@ public class QueryEnvironmentFactory { eventHandler, settings, functions, - targetPatternEvaluator.getOffset(), + relativeWorkingDirectory.getPathString(), graphFactory, universeScope, packagePath, @@ -70,7 +72,8 @@ public class QueryEnvironmentFactory { transitivePackageLoader, targetProvider, cachingPackageLocator, - targetPatternEvaluator, + targetPatternPreloader, + relativeWorkingDirectory, keepGoing, strictScope, loadingPhaseThreads, 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(); - } } /** diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java index 2ad145d1a3..32d31a2979 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java @@ -31,7 +31,7 @@ import com.google.devtools.build.lib.packages.SkylarkSemanticsOptions; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.pkgcache.PackageCacheOptions; import com.google.devtools.build.lib.pkgcache.PackageManager; -import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator; +import com.google.devtools.build.lib.pkgcache.TargetPatternPreloader; import com.google.devtools.build.lib.profiler.Profiler; import com.google.devtools.build.lib.profiler.ProfilerTask; import com.google.devtools.build.lib.profiler.SilentCloseable; @@ -316,12 +316,10 @@ public final class CommandEnvironment { } /** - * Creates and returns a new target pattern parser. + * Creates and returns a new target pattern preloader. */ - public TargetPatternEvaluator newTargetPatternEvaluator() { - TargetPatternEvaluator result = getPackageManager().newTargetPatternEvaluator(); - result.updateOffset(relativeWorkingDirectory); - return result; + public TargetPatternPreloader newTargetPatternPreloader() { + return getPackageManager().newTargetPatternPreloader(); } public PackageRootResolver getPackageRootResolver() { diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java index b9e071ce6a..8b06f1cbaf 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java @@ -300,7 +300,8 @@ public final class QueryCommand implements BlazeCommand { env.getSkyframeExecutor(), targetProviderForQueryEnvironment, env.getPackageManager(), - env.newTargetPatternEvaluator(), + env.newTargetPatternPreloader(), + env.getRelativeWorkingDirectory(), keepGoing, /*strictScope=*/ true, orderedResults, diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java index 633b8b873b..69a9b436ed 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java @@ -117,6 +117,7 @@ import com.google.devtools.build.lib.pkgcache.PackageManager; import com.google.devtools.build.lib.pkgcache.PackageManager.PackageManagerStatistics; import com.google.devtools.build.lib.pkgcache.PathPackageLocator; import com.google.devtools.build.lib.pkgcache.TargetParsingPhaseTimeEvent; +import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator; import com.google.devtools.build.lib.pkgcache.TestFilter; import com.google.devtools.build.lib.pkgcache.TransitivePackageLoader; import com.google.devtools.build.lib.profiler.AutoProfiler; @@ -2026,6 +2027,11 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { return packageManager; } + @VisibleForTesting + public TargetPatternEvaluator newTargetPatternEvaluator() { + return new SkyframeTargetPatternEvaluator(this); + } + public ActionKeyContext getActionKeyContext() { return actionKeyContext; } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageManager.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageManager.java index b0e36037ba..d89593ca07 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageManager.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageManager.java @@ -24,7 +24,7 @@ import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.pkgcache.PackageManager; import com.google.devtools.build.lib.pkgcache.PathPackageLocator; -import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator; +import com.google.devtools.build.lib.pkgcache.TargetPatternPreloader; import com.google.devtools.build.lib.pkgcache.TransitivePackageLoader; import com.google.devtools.build.lib.skyframe.SkyframeExecutor.SkyframePackageLoader; import com.google.devtools.build.lib.vfs.Path; @@ -125,7 +125,7 @@ class SkyframePackageManager implements PackageManager, CachingPackageLocator { } @Override - public TargetPatternEvaluator newTargetPatternEvaluator() { + public TargetPatternPreloader newTargetPatternPreloader() { return new SkyframeTargetPatternEvaluator(skyframeExecutor); } } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java index 4c8cf80a27..01d68f4cc7 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java @@ -27,6 +27,7 @@ import com.google.devtools.build.lib.pkgcache.FilteringPolicies; import com.google.devtools.build.lib.pkgcache.FilteringPolicy; import com.google.devtools.build.lib.pkgcache.ParsingFailedEvent; import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator; +import com.google.devtools.build.lib.pkgcache.TargetPatternPreloader; import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey; import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternSkyKeyOrException; import com.google.devtools.build.lib.vfs.PathFragment; @@ -40,47 +41,38 @@ import java.util.Map; /** * Skyframe-based target pattern parsing. */ -final class SkyframeTargetPatternEvaluator implements TargetPatternEvaluator { +final class SkyframeTargetPatternEvaluator + implements TargetPatternEvaluator, TargetPatternPreloader { private final SkyframeExecutor skyframeExecutor; - private String offset = ""; SkyframeTargetPatternEvaluator(SkyframeExecutor skyframeExecutor) { this.skyframeExecutor = skyframeExecutor; } + // Only used by AnalyzeCommand at this point. All build commands use SkyframeLoadingPhaseRunner. @Override public ResolvedTargets<Target> parseTargetPatternList( + PathFragment relativeWorkingDirectory, ExtendedEventHandler eventHandler, List<String> targetPatterns, FilteringPolicy policy, boolean keepGoing) throws TargetParsingException, InterruptedException { return parseTargetPatternList( - offset, eventHandler, ImmutableList.copyOf(targetPatterns), policy, keepGoing); - } - - @Override - public ResolvedTargets<Target> parseTargetPattern( - ExtendedEventHandler eventHandler, String pattern, boolean keepGoing) - throws TargetParsingException, InterruptedException { - return parseTargetPatternList(eventHandler, ImmutableList.of(pattern), - DEFAULT_FILTERING_POLICY, keepGoing); - } - - @Override - public void updateOffset(PathFragment relativeWorkingDirectory) { - offset = relativeWorkingDirectory.getPathString(); - } - - @Override - public String getOffset() { - return offset; + relativeWorkingDirectory.getPathString(), + eventHandler, + ImmutableList.copyOf(targetPatterns), + policy, + keepGoing); } @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 { // TODO(bazel-team): This is used only in "blaze query". There are plans to dramatically change // how query works on Skyframe, in which case this method is likely to go away. ImmutableList.Builder<TargetPatternsAndKeysAndResultBuilder> @@ -91,7 +83,11 @@ final class SkyframeTargetPatternEvaluator implements TargetPatternEvaluator { targetPatternsAndKeysAndResultListBuilder.add(new TargetPatternsAndKeysAndResultBuilder( singletonPatternList, getTargetPatternKeys( - offset, eventHandler, singletonPatternList, policy, keepGoing), + relativeWorkingDirectory.getPathString(), + eventHandler, + singletonPatternList, + policy, + keepGoing), createTargetPatternEvaluatorUtil(policy, eventHandler, keepGoing))); } |