diff options
author | Nathan Harmata <nharmata@google.com> | 2016-03-02 01:16:14 +0000 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2016-03-02 17:54:51 +0000 |
commit | ed93560c70d2a43463fb6364152e8a40b67ca7ec (patch) | |
tree | 7b42b4985eecc8646279bf91eb4b648d40f9dcfa /src/main/java/com/google/devtools/build/lib/query2/engine/TargetLiteral.java | |
parent | 985ed7072fe3d94a78895a61760313be02df79d8 (diff) |
In SkyQueryEnvironment, rewrite queries using the semantics-preserving transformation 'rdeps(<sky_query_environment_universe_scope>, T, depth)' -> 'allrdeps(T, depth)'.
SkyQueryEnvironment can evaluate such allrdeps queries much more efficiently since it doesn't need to bother filtering out targets outside of universe, meaning it doesn't need to have all targets in the universe in memory at the same time.
--
MOS_MIGRATED_REVID=116075008
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/query2/engine/TargetLiteral.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/engine/TargetLiteral.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/TargetLiteral.java b/src/main/java/com/google/devtools/build/lib/query2/engine/TargetLiteral.java index 32eca663eb..e7d8c00d73 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/engine/TargetLiteral.java +++ b/src/main/java/com/google/devtools/build/lib/query2/engine/TargetLiteral.java @@ -28,7 +28,7 @@ import java.util.Set; * * <pre>expr ::= NAME | WORD</pre> */ -final class TargetLiteral extends QueryExpression { +public final class TargetLiteral extends QueryExpression { private final String pattern; @@ -36,6 +36,10 @@ final class TargetLiteral extends QueryExpression { this.pattern = Preconditions.checkNotNull(pattern); } + public String getPattern() { + return pattern; + } + public boolean isVariableReference() { return LetExpression.isValidVarReference(pattern); } @@ -63,6 +67,11 @@ final class TargetLiteral extends QueryExpression { } @Override + public QueryExpression getMapped(QueryExpressionMapper mapper) { + return mapper.map(this); + } + + @Override public String toString() { // Keep predicate consistent with Lexer.scanWord! boolean needsQuoting = Lexer.isReservedWord(pattern) |