diff options
| author | 2019-01-27 16:42:12 +0000 | |
|---|---|---|
| committer | 2019-01-27 16:42:12 +0000 | |
| commit | b773203fb58f3ef282fb69c832d8710cab5bc82d (patch) | |
| tree | e75913f147570fbd75169647b144df85b88a038c /gnu/llvm/tools/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp | |
| parent | tweak errno in previous (diff) | |
| download | wireguard-openbsd-b773203fb58f3ef282fb69c832d8710cab5bc82d.tar.xz wireguard-openbsd-b773203fb58f3ef282fb69c832d8710cab5bc82d.zip | |
Import LLVM 7.0.1 release including clang, lld and lldb.
Diffstat (limited to 'gnu/llvm/tools/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp')
| -rw-r--r-- | gnu/llvm/tools/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/gnu/llvm/tools/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp b/gnu/llvm/tools/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp index 0c4c7dfd780..d670e3129b8 100644 --- a/gnu/llvm/tools/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp +++ b/gnu/llvm/tools/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp @@ -186,8 +186,8 @@ using ast_matchers::internal::Matcher; Parser::NamedValueMap getTestNamedValues() { Parser::NamedValueMap Values; Values["nameX"] = llvm::StringRef("x"); - Values["hasParamA"] = - VariantMatcher::SingleMatcher(hasParameter(0, hasName("a"))); + Values["hasParamA"] = VariantMatcher::SingleMatcher( + functionDecl(hasParameter(0, hasName("a")))); return Values; } @@ -236,6 +236,17 @@ TEST(ParserTest, FullParserTest) { Error.toStringFull()); } +TEST(ParserTest, VariadicMatchTest) { + Diagnostics 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 " + "void foo(I* i) { [i methodA]; }", M)); +} + std::string ParseWithError(StringRef Code) { Diagnostics Error; VariantValue Value; @@ -329,16 +340,17 @@ TEST(ParserTest, CompletionNamedValues) { EXPECT_LT(0u, Comps.size()); // Can complete names and registry together. - Code = "cxxMethodDecl(hasP"; + Code = "functionDecl(hasP"; Comps = Parser::completeExpression(Code, Code.size(), nullptr, &NamedValues); ASSERT_EQ(3u, Comps.size()); - EXPECT_EQ("aramA", Comps[0].TypedText); - EXPECT_EQ("Matcher<FunctionDecl> hasParamA", Comps[0].MatcherDecl); - EXPECT_EQ("arameter(", Comps[1].TypedText); + EXPECT_EQ("arameter(", Comps[0].TypedText); EXPECT_EQ( "Matcher<FunctionDecl> hasParameter(unsigned, Matcher<ParmVarDecl>)", - Comps[1].MatcherDecl); + Comps[0].MatcherDecl); + + EXPECT_EQ("aramA", Comps[1].TypedText); + EXPECT_EQ("Matcher<Decl> hasParamA", Comps[1].MatcherDecl); EXPECT_EQ("arent(", Comps[2].TypedText); EXPECT_EQ( |
