diff options
author | Stephen Kelly <steveire@gmail.com> | 2019-12-26 20:16:23 +0000 |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2019-12-26 20:16:23 +0000 |
commit | 831b636861ea33c3cc1c1c28384fb1800facf792 (patch) | |
tree | b83a378092869058873c7cc84a65509ed0c1069d /clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp | |
parent | 6a3ecf4dc7ec299394e71b3124df2b3a34ed4ac3 (diff) | |
download | bcm5719-llvm-831b636861ea33c3cc1c1c28384fb1800facf792.tar.gz bcm5719-llvm-831b636861ea33c3cc1c1c28384fb1800facf792.zip |
Revert "Allow newlines in AST Matchers in clang-query files"
This reverts commit 6a3ecf4dc7ec299394e71b3124df2b3a34ed4ac3.
Diffstat (limited to 'clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp')
-rw-r--r-- | clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp | 165 |
1 files changed, 23 insertions, 142 deletions
diff --git a/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp b/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp index 67fc7079029..db16ca41875 100644 --- a/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp +++ b/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp @@ -207,12 +207,10 @@ Parser::NamedValueMap getTestNamedValues() { TEST(ParserTest, FullParserTest) { Diagnostics Error; - - StringRef Code = + llvm::Optional<DynTypedMatcher> VarDecl(Parser::parseMatcherExpression( "varDecl(hasInitializer(binaryOperator(hasLHS(integerLiteral())," - " hasOperatorName(\"+\"))))"; - llvm::Optional<DynTypedMatcher> VarDecl( - Parser::parseMatcherExpression(Code, &Error)); + " hasOperatorName(\"+\"))))", + &Error)); EXPECT_EQ("", Error.toStringFull()); Matcher<Decl> M = VarDecl->unconditionalConvertTo<Decl>(); EXPECT_TRUE(matches("int x = 1 + false;", M)); @@ -220,9 +218,8 @@ TEST(ParserTest, FullParserTest) { EXPECT_FALSE(matches("int x = 1 - false;", M)); EXPECT_FALSE(matches("int x = true - 1;", M)); - Code = "functionDecl(hasParameter(1, hasName(\"x\")))"; - llvm::Optional<DynTypedMatcher> HasParameter( - Parser::parseMatcherExpression(Code, &Error)); + llvm::Optional<DynTypedMatcher> HasParameter(Parser::parseMatcherExpression( + "functionDecl(hasParameter(1, hasName(\"x\")))", &Error)); EXPECT_EQ("", Error.toStringFull()); M = HasParameter->unconditionalConvertTo<Decl>(); @@ -231,18 +228,20 @@ TEST(ParserTest, FullParserTest) { // Test named values. auto NamedValues = getTestNamedValues(); - - Code = "functionDecl(hasParamA, hasParameter(1, hasName(nameX)))"; llvm::Optional<DynTypedMatcher> HasParameterWithNamedValues( - Parser::parseMatcherExpression(Code, nullptr, &NamedValues, &Error)); + Parser::parseMatcherExpression( + "functionDecl(hasParamA, hasParameter(1, hasName(nameX)))", + nullptr, &NamedValues, &Error)); EXPECT_EQ("", Error.toStringFull()); M = HasParameterWithNamedValues->unconditionalConvertTo<Decl>(); EXPECT_TRUE(matches("void f(int a, int x);", M)); EXPECT_FALSE(matches("void f(int x, int a);", M)); - Code = "hasInitializer(\n binaryOperator(hasLHS(\"A\")))"; - EXPECT_TRUE(!Parser::parseMatcherExpression(Code, &Error).hasValue()); + + EXPECT_TRUE(!Parser::parseMatcherExpression( + "hasInitializer(\n binaryOperator(hasLHS(\"A\")))", + &Error).hasValue()); EXPECT_EQ("1:1: Error parsing argument 1 for matcher hasInitializer.\n" "2:5: Error parsing argument 1 for matcher binaryOperator.\n" "2:20: Error building matcher hasLHS.\n" @@ -253,11 +252,9 @@ TEST(ParserTest, FullParserTest) { TEST(ParserTest, VariadicMatchTest) { Diagnostics Error; - - StringRef Code = - "stmt(objcMessageExpr(hasAnySelector(\"methodA\", \"methodB:\")))"; - llvm::Optional<DynTypedMatcher> OM( - Parser::parseMatcherExpression(Code, &Error)); + llvm::Optional<DynTypedMatcher> OM(Parser::parseMatcherExpression( + "stmt(objcMessageExpr(hasAnySelector(\"methodA\", \"methodB:\")))", + &Error)); EXPECT_EQ("", Error.toStringFull()); auto M = OM->unconditionalConvertTo<Stmt>(); EXPECT_TRUE(matchesObjC("@interface I @end " @@ -327,132 +324,15 @@ TEST(ParserTest, OverloadErrors) { ParseWithError("callee(\"A\")")); } -TEST(ParserTest, ParseMultiline) { - StringRef Code; - - llvm::Optional<DynTypedMatcher> M; - { - Code = R"matcher(varDecl( - hasName("foo") - ) -)matcher"; - Diagnostics Error; - EXPECT_TRUE(Parser::parseMatcherExpression(Code, &Error).hasValue()); - } - - { - Code = R"matcher(varDecl( - # Internal comment - hasName("foo") # Internal comment -# Internal comment - ) -)matcher"; - Diagnostics Error; - EXPECT_TRUE(Parser::parseMatcherExpression(Code, &Error).hasValue()); - } - - { - Code = R"matcher(decl().bind( - "paramName") -)matcher"; - Diagnostics Error; - EXPECT_TRUE(Parser::parseMatcherExpression(Code, &Error).hasValue()); - } - - { - Code = R"matcher(decl().bind( - "paramName" - ) -)matcher"; - Diagnostics Error; - EXPECT_TRUE(Parser::parseMatcherExpression(Code, &Error).hasValue()); - } - - { - Code = R"matcher(decl(decl() -, decl()))matcher"; - Diagnostics Error; - EXPECT_TRUE(Parser::parseMatcherExpression(Code, &Error).hasValue()); - } - - { - Code = R"matcher(decl(decl(), -decl()))matcher"; - Diagnostics Error; - EXPECT_TRUE(Parser::parseMatcherExpression(Code, &Error).hasValue()); - } - - { - Code = "namedDecl(hasName(\"n\"\n))"; - Diagnostics Error; - EXPECT_TRUE(Parser::parseMatcherExpression(Code, &Error).hasValue()); - } - - { - Diagnostics Error; - - auto NamedValues = getTestNamedValues(); - - Code = R"matcher(hasParamA.bind - ("paramName") -)matcher"; - M = Parser::parseMatcherExpression(Code, nullptr, &NamedValues, &Error); - EXPECT_FALSE(M.hasValue()); - EXPECT_EQ("1:15: Malformed bind() expression.", Error.toStringFull()); - } - - { - Diagnostics Error; - - auto NamedValues = getTestNamedValues(); - - Code = R"matcher(hasParamA. - bind("paramName") -)matcher"; - M = Parser::parseMatcherExpression(Code, nullptr, &NamedValues, &Error); - EXPECT_FALSE(M.hasValue()); - EXPECT_EQ("1:11: Malformed bind() expression.", Error.toStringFull()); - } - - { - Diagnostics Error; - - Code = R"matcher(varDecl -() -)matcher"; - M = Parser::parseMatcherExpression(Code, nullptr, nullptr, &Error); - EXPECT_FALSE(M.hasValue()); - EXPECT_EQ("1:8: Error parsing matcher. Found token " - "<NewLine> while looking for '('.", - Error.toStringFull()); - } - - // Correct line/column numbers - { - Diagnostics Error; - - Code = R"matcher(varDecl( - doesNotExist() - ) -)matcher"; - M = Parser::parseMatcherExpression(Code, nullptr, nullptr, &Error); - EXPECT_FALSE(M.hasValue()); - EXPECT_EQ(R"error(1:1: Error parsing argument 1 for matcher varDecl. -2:3: Matcher not found: doesNotExist)error", - Error.toStringFull()); - } -} - TEST(ParserTest, CompletionRegistry) { - StringRef Code = "while"; - std::vector<MatcherCompletion> Comps = Parser::completeExpression(Code, 5); + std::vector<MatcherCompletion> Comps = + Parser::completeExpression("while", 5); ASSERT_EQ(1u, Comps.size()); EXPECT_EQ("Stmt(", Comps[0].TypedText); EXPECT_EQ("Matcher<Stmt> whileStmt(Matcher<WhileStmt>...)", Comps[0].MatcherDecl); - Code = "whileStmt()."; - Comps = Parser::completeExpression(Code, 12); + Comps = Parser::completeExpression("whileStmt().", 12); ASSERT_EQ(1u, Comps.size()); EXPECT_EQ("bind(\"", Comps[0].TypedText); EXPECT_EQ("bind", Comps[0].MatcherDecl); @@ -500,9 +380,9 @@ TEST(ParserTest, ParseBindOnLet) { Diagnostics Error; { - StringRef Code = "hasParamA.bind(\"parmABinding\")"; llvm::Optional<DynTypedMatcher> TopLevelLetBinding( - Parser::parseMatcherExpression(Code, nullptr, &NamedValues, &Error)); + Parser::parseMatcherExpression("hasParamA.bind(\"parmABinding\")", + nullptr, &NamedValues, &Error)); EXPECT_EQ("", Error.toStringFull()); auto M = TopLevelLetBinding->unconditionalConvertTo<Decl>(); @@ -515,9 +395,10 @@ TEST(ParserTest, ParseBindOnLet) { } { - StringRef Code = "functionDecl(hasParamA.bind(\"parmABinding\"))"; llvm::Optional<DynTypedMatcher> NestedLetBinding( - Parser::parseMatcherExpression(Code, nullptr, &NamedValues, &Error)); + Parser::parseMatcherExpression( + "functionDecl(hasParamA.bind(\"parmABinding\"))", nullptr, + &NamedValues, &Error)); EXPECT_EQ("", Error.toStringFull()); auto M = NestedLetBinding->unconditionalConvertTo<Decl>(); |