aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/query2/engine/TargetLiteral.java
diff options
context:
space:
mode:
authorGravatar Nathan Harmata <nharmata@google.com>2016-03-02 01:16:14 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-03-02 17:54:51 +0000
commited93560c70d2a43463fb6364152e8a40b67ca7ec (patch)
tree7b42b4985eecc8646279bf91eb4b648d40f9dcfa /src/main/java/com/google/devtools/build/lib/query2/engine/TargetLiteral.java
parent985ed7072fe3d94a78895a61760313be02df79d8 (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.java11
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)