aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java
diff options
context:
space:
mode:
authorGravatar Mark Schaller <mschaller@google.com>2015-05-19 21:19:37 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-05-21 09:46:17 +0000
commit66b35f3d069a77e5da685099d3ba3c0a0f5e844b (patch)
tree1970ede6c00b2980f6a11951581f5046073d236d /src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java
parent87836b4116f78b3c37cb8ed439c14d98193ae9d5 (diff)
Move target pattern parsing to key construction time
So that a subsequent commit can take advantage of semantic information known only after target patterns have been parsed, this commit moves parsing from pattern evaluation time to pattern key construction time. This leads toward more efficient processing of target patterns in target pattern sequence evaluation. -- MOS_MIGRATED_REVID=94025646
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java
index 97aef9845f..d805a91695 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternFunction.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.cmdline.ResolvedTargets;
import com.google.devtools.build.lib.cmdline.TargetParsingException;
import com.google.devtools.build.lib.cmdline.TargetPattern;
@@ -47,16 +48,16 @@ public class TargetPatternFunction implements SkyFunction {
InterruptedException {
TargetPatternValue.TargetPatternKey patternKey =
((TargetPatternValue.TargetPatternKey) key.argument());
- TargetPattern.Parser parser = new TargetPattern.Parser(patternKey.getOffset());
- ResolvedTargets<Target> resolvedTargets = null;
+ ResolvedTargets<Target> resolvedTargets;
try {
EnvironmentBackedRecursivePackageProvider provider =
new EnvironmentBackedRecursivePackageProvider(env);
RecursivePackageProviderBackedTargetPatternResolver resolver =
new RecursivePackageProviderBackedTargetPatternResolver(provider, env.getListener(),
patternKey.getPolicy(), pkgPath.get());
- TargetPattern resolvedPattern = parser.parse(patternKey.getPattern());
- resolvedTargets = resolvedPattern.eval(resolver);
+ TargetPattern parsedPattern = patternKey.getParsedPattern();
+ ImmutableSet<String> excludedSubdirectories = patternKey.getExcludedSubdirectories();
+ resolvedTargets = parsedPattern.eval(resolver, excludedSubdirectories);
} catch (TargetParsingException e) {
throw new TargetPatternFunctionException(e);
} catch (MissingDepException e) {