diff options
author | juliexxia <juliexxia@google.com> | 2018-01-05 08:24:25 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-01-05 08:25:59 -0800 |
commit | 91695a31a8414f87a21ad2f32c4a122f5823bdfa (patch) | |
tree | 331ceb2ef069e5e7e652ad6a6d83fe02bb31fd03 | |
parent | 18fa042d9584f2f4bdde1233169ebe45789b988a (diff) |
Automated rollback of commit 9e63684a58025d98bfe2f180d56ba7ece69545ae.
*** Reason for rollback ***
Roll forward of commit 86b4532769c22cca2ed7068a60f3326beaad34af after fixing bad import.
+small misc fixes suggested by critique
*** Original change description ***
Automated rollback of commit 86b4532769c22cca2ed7068a60f3326beaad34af.
*** Reason for rollback ***
Probably breaking //javatests/com/google/devtools/build/lib:Query2Tests
*** Original change description ***
Restructure how universeScope is used when testing configured query to mimick impending changes to the configured query interface (CL/179872445) which will pull build targets out of the query expression.
Fill in testTopLevelTransitions on the way!
PiperOrigin-RevId: 180930388
3 files changed, 22 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/QueryParser.java b/src/main/java/com/google/devtools/build/lib/query2/engine/QueryParser.java index b202bc326e..9ba285ee29 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/engine/QueryParser.java +++ b/src/main/java/com/google/devtools/build/lib/query2/engine/QueryParser.java @@ -45,7 +45,7 @@ import java.util.Map; * | SET '(' WORD * ')' * </pre> */ -final class QueryParser { +public final class QueryParser { private Lexer.Token token; // current lookahead token private final List<Lexer.Token> tokens; @@ -56,23 +56,26 @@ final class QueryParser { * Scan and parse the specified query expression. */ static QueryExpression parse(String query, QueryEnvironment<?> env) throws QueryException { - QueryParser parser = new QueryParser(Lexer.scan(query), env); + HashMap<String, QueryFunction> functions = new HashMap<>(); + for (QueryFunction queryFunction : env.getFunctions()) { + functions.put(queryFunction.getName(), queryFunction); + } + return parse(query, functions); + } + + public static QueryExpression parse(String query, HashMap<String, QueryFunction> functions) + throws QueryException { + QueryParser parser = new QueryParser(Lexer.scan(query), functions); QueryExpression expr = parser.parseExpression(); if (parser.token.kind != TokenKind.EOF) { throw new QueryException("unexpected token '" + parser.token - + "' after query expression '" + expr + "'"); + + "' after query expression '" + expr + "'"); } return expr; } - private QueryParser(List<Lexer.Token> tokens, QueryEnvironment<?> env) { - // TODO(bazel-team): We only need QueryEnvironment#getFunctions, consider refactoring users of - // QueryParser#parse to instead just pass in the set of functions to make testing, among other - // things, simpler. - this.functions = new HashMap<>(); - for (QueryFunction queryFunction : env.getFunctions()) { - this.functions.put(queryFunction.getName(), queryFunction); - } + public QueryParser(List<Lexer.Token> tokens, HashMap<String, QueryFunction> functions) { + this.functions = functions; this.tokens = tokens; this.tokenIterator = tokens.iterator(); nextToken(); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java index 93e88ea1df..60fc89ab46 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java @@ -478,7 +478,7 @@ public abstract class AnalysisTestCase extends FoundationTestCase { * * Also see {@link AnalysisTestCase#setRulesAndAspectsAvailableInTests(Iterable, Iterable)}. */ - protected final void setRulesAvailableInTests(RuleDefinition... rules) throws Exception { + protected void setRulesAvailableInTests(RuleDefinition... rules) throws Exception { setRulesAndAspectsAvailableInTests( ImmutableList.<NativeAspectClass>of(), ImmutableList.copyOf(rules)); diff --git a/third_party/ijar/BUILD b/third_party/ijar/BUILD index 90f74c5407..45fca3a6df 100644 --- a/third_party/ijar/BUILD +++ b/third_party/ijar/BUILD @@ -15,6 +15,9 @@ cc_library( "//src:windows": [ "mapped_file_windows.cc", ], + "//src:windows_msvc": [ + "mapped_file_windows.cc", + ], "//conditions:default": [ "mapped_file_unix.cc", ], @@ -32,6 +35,10 @@ cc_library( "//src/main/cpp/util:errors", "//src/main/cpp/util:file", ], + "//src:windows_msvc": [ + "//src/main/cpp/util:errors", + "//src/main/cpp/util:file", + ], "//conditions:default": [ ], }), |