diff options
author | Samuel Benzaquen <sbenza@google.com> | 2014-08-12 21:22:58 +0000 |
---|---|---|
committer | Samuel Benzaquen <sbenza@google.com> | 2014-08-12 21:22:58 +0000 |
commit | caf496a4ee321fb0232d6b6a6f3b42d0d03a3556 (patch) | |
tree | 6d7fff276251e6dadd707bdfbc6794571d24b565 /clang-query | |
parent | 45bed8c5e9b3c0bdde287064863a70dcca09abdf (diff) |
[clang-query] Use the new API for named values from the Parser.
Summary: This finishes the support for autocomplete for user defined values..
Reviewers: pcc
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4851
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@215474 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'clang-query')
-rw-r--r-- | clang-query/QueryParser.cpp | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/clang-query/QueryParser.cpp b/clang-query/QueryParser.cpp index 9d5e2b18..7df7dd28 100644 --- a/clang-query/QueryParser.cpp +++ b/clang-query/QueryParser.cpp @@ -157,23 +157,12 @@ QueryRef makeInvalidQueryFromDiagnostics(const Diagnostics &Diag) { return new InvalidQuery(OS.str()); } -class QuerySessionSema : public Parser::RegistrySema { -public: - QuerySessionSema(const QuerySession &QS) : QS(QS) {} - - ast_matchers::dynamic::VariantValue getNamedValue(StringRef Name) override { - return QS.NamedValues.lookup(Name); - } - -private: - const QuerySession &QS; -}; - } // namespace QueryRef QueryParser::completeMatcherExpression() { std::vector<MatcherCompletion> Comps = Parser::completeExpression( - StringRef(Begin, End - Begin), CompletionPos - Begin); + StringRef(Begin, End - Begin), CompletionPos - Begin, nullptr, + &QS.NamedValues); for (std::vector<MatcherCompletion>::iterator I = Comps.begin(), E = Comps.end(); I != E; ++I) { @@ -194,8 +183,6 @@ QueryRef QueryParser::doParse() { .Case("unlet", PQK_Unlet) .Default(PQK_Invalid); - QuerySessionSema S(QS); - switch (QKind) { case PQK_NoOp: return new NoOpQuery; @@ -214,8 +201,8 @@ QueryRef QueryParser::doParse() { Diagnostics Diag; ast_matchers::dynamic::VariantValue Value; - if (!Parser::parseExpression(StringRef(Begin, End - Begin), &S, &Value, - &Diag)) { + if (!Parser::parseExpression(StringRef(Begin, End - Begin), nullptr, + &QS.NamedValues, &Value, &Diag)) { return makeInvalidQueryFromDiagnostics(Diag); } @@ -228,7 +215,7 @@ QueryRef QueryParser::doParse() { Diagnostics Diag; Optional<DynTypedMatcher> Matcher = Parser::parseMatcherExpression( - StringRef(Begin, End - Begin), &S, &Diag); + StringRef(Begin, End - Begin), nullptr, &QS.NamedValues, &Diag); if (!Matcher) { return makeInvalidQueryFromDiagnostics(Diag); } |