diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2022-07-13 09:11:45 -0700 |
---|---|---|
committer | Jonas Devlieghere <jonas@devlieghere.com> | 2022-07-13 09:20:30 -0700 |
commit | 3968936b92bf4c800e4163b038ba970abce3d90f (patch) | |
tree | 6b0b13f62569c78eea69b7a75655c4593544ec2f /clang/unittests | |
parent | bb3f99cd858e5a769f82c609f1536b1a00dcdcaf (diff) | |
download | llvm-3968936b92bf4c800e4163b038ba970abce3d90f.zip llvm-3968936b92bf4c800e4163b038ba970abce3d90f.tar.gz llvm-3968936b92bf4c800e4163b038ba970abce3d90f.tar.bz2 |
Revert "[clang] Implement ElaboratedType sugaring for types written bare"
This reverts commit bdc6974f92304f4ed542241b9b89ba58ba6b20aa because it
breaks all the LLDB tests that import the std module.
import-std-module/array.TestArrayFromStdModule.py
import-std-module/deque-basic.TestDequeFromStdModule.py
import-std-module/deque-dbg-info-content.TestDbgInfoContentDequeFromStdModule.py
import-std-module/forward_list.TestForwardListFromStdModule.py
import-std-module/forward_list-dbg-info-content.TestDbgInfoContentForwardListFromStdModule.py
import-std-module/list.TestListFromStdModule.py
import-std-module/list-dbg-info-content.TestDbgInfoContentListFromStdModule.py
import-std-module/queue.TestQueueFromStdModule.py
import-std-module/stack.TestStackFromStdModule.py
import-std-module/vector.TestVectorFromStdModule.py
import-std-module/vector-bool.TestVectorBoolFromStdModule.py
import-std-module/vector-dbg-info-content.TestDbgInfoContentVectorFromStdModule.py
import-std-module/vector-of-vectors.TestVectorOfVectorsFromStdModule.py
https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/45301/
Diffstat (limited to 'clang/unittests')
-rw-r--r-- | clang/unittests/AST/ASTImporterTest.cpp | 64 | ||||
-rw-r--r-- | clang/unittests/AST/ASTTraverserTest.cpp | 6 | ||||
-rw-r--r-- | clang/unittests/AST/TypePrinterTest.cpp | 2 | ||||
-rw-r--r-- | clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp | 28 | ||||
-rw-r--r-- | clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp | 27 | ||||
-rw-r--r-- | clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp | 112 | ||||
-rw-r--r-- | clang/unittests/Introspection/IntrospectionTest.cpp | 194 | ||||
-rw-r--r-- | clang/unittests/Sema/CodeCompleteTest.cpp | 6 | ||||
-rw-r--r-- | clang/unittests/StaticAnalyzer/SValTest.cpp | 5 | ||||
-rw-r--r-- | clang/unittests/StaticAnalyzer/TestReturnValueUnderConstruction.cpp | 3 | ||||
-rw-r--r-- | clang/unittests/Tooling/QualTypeNamesTest.cpp | 14 | ||||
-rw-r--r-- | clang/unittests/Tooling/RecursiveASTVisitorTestTypeLocVisitor.cpp | 2 | ||||
-rw-r--r-- | clang/unittests/Tooling/StencilTest.cpp | 5 |
13 files changed, 183 insertions, 285 deletions
diff --git a/clang/unittests/AST/ASTImporterTest.cpp b/clang/unittests/AST/ASTImporterTest.cpp index 62d8d82..d0edbcb 100644 --- a/clang/unittests/AST/ASTImporterTest.cpp +++ b/clang/unittests/AST/ASTImporterTest.cpp @@ -420,15 +420,14 @@ TEST_P(ImportExpr, ImportParenListExpr) { "typedef dummy<int> declToImport;" "template class dummy<int>;", Lang_CXX03, "", Lang_CXX03, Verifier, - typedefDecl(hasType(elaboratedType(namesType(templateSpecializationType( + typedefDecl(hasType(templateSpecializationType( hasDeclaration(classTemplateSpecializationDecl(hasSpecializedTemplate( - classTemplateDecl(hasTemplateDecl(cxxRecordDecl(hasMethod( - allOf(hasName("f"), - hasBody(compoundStmt(has(declStmt(hasSingleDecl(varDecl( - hasInitializer(parenListExpr(has(unaryOperator( - hasOperatorName("*"), - hasUnaryOperand( - cxxThisExpr()))))))))))))))))))))))))); + classTemplateDecl(hasTemplateDecl(cxxRecordDecl(hasMethod(allOf( + hasName("f"), + hasBody(compoundStmt(has(declStmt(hasSingleDecl( + varDecl(hasInitializer(parenListExpr(has(unaryOperator( + hasOperatorName("*"), + hasUnaryOperand(cxxThisExpr()))))))))))))))))))))))); } TEST_P(ImportExpr, ImportSwitch) { @@ -515,19 +514,20 @@ TEST_P(ImportExpr, ImportPredefinedExpr) { TEST_P(ImportExpr, ImportInitListExpr) { MatchVerifier<Decl> Verifier; - testImport("void declToImport() {" - " struct point { double x; double y; };" - " point ptarray[10] = { [2].y = 1.0, [2].x = 2.0," - " [0].x = 1.0 }; }", - Lang_CXX03, "", Lang_CXX03, Verifier, - functionDecl(hasDescendant(initListExpr( - has(cxxConstructExpr(requiresZeroInitialization())), - has(initListExpr( - hasType(asString("point")), has(floatLiteral(equals(1.0))), - has(implicitValueInitExpr(hasType(asString("double")))))), - has(initListExpr(hasType(asString("point")), - has(floatLiteral(equals(2.0))), - has(floatLiteral(equals(1.0))))))))); + testImport( + "void declToImport() {" + " struct point { double x; double y; };" + " point ptarray[10] = { [2].y = 1.0, [2].x = 2.0," + " [0].x = 1.0 }; }", + Lang_CXX03, "", Lang_CXX03, Verifier, + functionDecl(hasDescendant(initListExpr( + has(cxxConstructExpr(requiresZeroInitialization())), + has(initListExpr( + hasType(asString("struct point")), has(floatLiteral(equals(1.0))), + has(implicitValueInitExpr(hasType(asString("double")))))), + has(initListExpr(hasType(asString("struct point")), + has(floatLiteral(equals(2.0))), + has(floatLiteral(equals(1.0))))))))); } const internal::VariadicDynCastAllOfMatcher<Expr, CXXDefaultInitExpr> @@ -582,8 +582,8 @@ TEST_P(ImportType, ImportUsingType) { testImport("struct C {};" "void declToImport() { using ::C; new C{}; }", Lang_CXX11, "", Lang_CXX11, Verifier, - functionDecl(hasDescendant(cxxNewExpr(hasType(pointerType( - pointee(elaboratedType(namesType(usingType()))))))))); + functionDecl(hasDescendant( + cxxNewExpr(hasType(pointerType(pointee(usingType()))))))); } TEST_P(ImportDecl, ImportFunctionTemplateDecl) { @@ -680,8 +680,7 @@ TEST_P(ImportType, ImportDeducedTemplateSpecialization) { "class C { public: C(T); };" "C declToImport(123);", Lang_CXX17, "", Lang_CXX17, Verifier, - varDecl(hasType(elaboratedType( - namesType(deducedTemplateSpecializationType()))))); + varDecl(hasType(deducedTemplateSpecializationType()))); } const internal::VariadicDynCastAllOfMatcher<Stmt, SizeOfPackExpr> @@ -898,9 +897,9 @@ TEST_P(ImportDecl, ImportUsingTemplate) { "void declToImport() {" "using ns::S; X<S> xi; }", Lang_CXX11, "", Lang_CXX11, Verifier, - functionDecl(hasDescendant(varDecl(hasTypeLoc(elaboratedTypeLoc( - hasNamedTypeLoc(templateSpecializationTypeLoc( - hasAnyTemplateArgumentLoc(templateArgumentLoc()))))))))); + functionDecl( + hasDescendant(varDecl(hasTypeLoc(templateSpecializationTypeLoc( + hasAnyTemplateArgumentLoc(templateArgumentLoc()))))))); } TEST_P(ImportDecl, ImportUsingEnumDecl) { @@ -921,9 +920,8 @@ TEST_P(ImportDecl, ImportUsingPackDecl) { "template<typename ...T> struct C : T... { using T::operator()...; };" "C<A, B> declToImport;", Lang_CXX20, "", Lang_CXX20, Verifier, - varDecl(hasType(elaboratedType(namesType(templateSpecializationType( - hasDeclaration(classTemplateSpecializationDecl( - hasDescendant(usingPackDecl()))))))))); + varDecl(hasType(templateSpecializationType(hasDeclaration( + classTemplateSpecializationDecl(hasDescendant(usingPackDecl()))))))); } /// \brief Matches shadow declarations introduced into a scope by a @@ -7146,7 +7144,7 @@ TEST_P(CTAD, DeductionGuideShouldReferToANonLocalTypedef) { ParmVarDecl *Param = Guide->getParamDecl(0); // The type of the first param (which is a typedef) should match the typedef // in the global scope. - EXPECT_EQ(Param->getType()->getAs<TypedefType>()->getDecl(), Typedef); + EXPECT_EQ(Param->getType()->castAs<TypedefType>()->getDecl(), Typedef); } TEST_P(CTAD, DeductionGuideShouldReferToANonLocalTypedefInParamPtr) { @@ -7187,7 +7185,7 @@ TEST_P(CTAD, DeductionGuideShouldCopyALocalTypedef) { auto *Typedef = FirstDeclMatcher<TypedefNameDecl>().match( TU, typedefNameDecl(hasName("U"))); ParmVarDecl *Param = Guide->getParamDecl(0); - EXPECT_NE(Param->getType()->getAs<TypedefType>()->getDecl(), Typedef); + EXPECT_NE(Param->getType()->castAs<TypedefType>()->getDecl(), Typedef); } INSTANTIATE_TEST_SUITE_P(ParameterizedTests, CTAD, diff --git a/clang/unittests/AST/ASTTraverserTest.cpp b/clang/unittests/AST/ASTTraverserTest.cpp index f51d50a..3553c30 100644 --- a/clang/unittests/AST/ASTTraverserTest.cpp +++ b/clang/unittests/AST/ASTTraverserTest.cpp @@ -1211,9 +1211,9 @@ void decompTuple() CXXRecordDecl 'Record' |-CXXRecordDecl 'Record' |-CXXConstructorDecl 'Record' -| |-CXXCtorInitializer 'Simple' +| |-CXXCtorInitializer 'struct Simple' | | `-CXXConstructExpr -| |-CXXCtorInitializer 'Other' +| |-CXXCtorInitializer 'struct Other' | | `-CXXConstructExpr | |-CXXCtorInitializer 'm_i' | | `-IntegerLiteral @@ -1234,7 +1234,7 @@ CXXRecordDecl 'Record' R"cpp( CXXRecordDecl 'Record' |-CXXConstructorDecl 'Record' -| |-CXXCtorInitializer 'Simple' +| |-CXXCtorInitializer 'struct Simple' | | `-CXXConstructExpr | |-CXXCtorInitializer 'm_i' | | `-IntegerLiteral diff --git a/clang/unittests/AST/TypePrinterTest.cpp b/clang/unittests/AST/TypePrinterTest.cpp index 322a1b8..12801a7 100644 --- a/clang/unittests/AST/TypePrinterTest.cpp +++ b/clang/unittests/AST/TypePrinterTest.cpp @@ -60,7 +60,7 @@ TEST(TypePrinter, TemplateId) { [](PrintingPolicy &Policy) { Policy.FullyQualifiedName = false; })); ASSERT_TRUE(PrintedTypeMatches( - Code, {}, Matcher, "const Type<T> &", + Code, {}, Matcher, "const N::Type<T> &", [](PrintingPolicy &Policy) { Policy.FullyQualifiedName = true; })); } diff --git a/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp index 752a736..7811402 100644 --- a/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp +++ b/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp @@ -1348,14 +1348,15 @@ TEST_P(ASTMatchersTest, HasType_MatchesAsString) { EXPECT_TRUE( matches("class Y { public: void x(); }; void z() {Y* y; y->x(); }", - cxxMemberCallExpr(on(hasType(asString("Y *")))))); + cxxMemberCallExpr(on(hasType(asString("class Y *")))))); EXPECT_TRUE( matches("class X { void x(int x) {} };", cxxMethodDecl(hasParameter(0, hasType(asString("int")))))); EXPECT_TRUE(matches("namespace ns { struct A {}; } struct B { ns::A a; };", fieldDecl(hasType(asString("ns::A"))))); - EXPECT_TRUE(matches("namespace { struct A {}; } struct B { A a; };", - fieldDecl(hasType(asString("A"))))); + EXPECT_TRUE( + matches("namespace { struct A {}; } struct B { A a; };", + fieldDecl(hasType(asString("struct (anonymous namespace)::A"))))); } TEST_P(ASTMatchersTest, HasOverloadedOperatorName) { @@ -2141,10 +2142,9 @@ TEST(ASTMatchersTest, NamesMember_CXXDependentScopeMemberExpr) { EXPECT_TRUE(matches( Code, cxxDependentScopeMemberExpr( - hasObjectExpression(declRefExpr(hasType(elaboratedType(namesType( - templateSpecializationType(hasDeclaration(classTemplateDecl( - has(cxxRecordDecl(has(cxxMethodDecl(hasName("mem")) - .bind("templMem")))))))))))), + hasObjectExpression(declRefExpr(hasType(templateSpecializationType( + hasDeclaration(classTemplateDecl(has(cxxRecordDecl( + has(cxxMethodDecl(hasName("mem")).bind("templMem")))))))))), memberHasSameNameAsBoundNode("templMem")))); EXPECT_TRUE( @@ -2162,10 +2162,9 @@ TEST(ASTMatchersTest, NamesMember_CXXDependentScopeMemberExpr) { EXPECT_TRUE(matches( Code, cxxDependentScopeMemberExpr( - hasObjectExpression(declRefExpr( - hasType(elaboratedType(namesType(templateSpecializationType( - hasDeclaration(classTemplateDecl(has(cxxRecordDecl(has( - fieldDecl(hasName("mem")).bind("templMem")))))))))))), + hasObjectExpression(declRefExpr(hasType(templateSpecializationType( + hasDeclaration(classTemplateDecl(has(cxxRecordDecl( + has(fieldDecl(hasName("mem")).bind("templMem")))))))))), memberHasSameNameAsBoundNode("templMem")))); } @@ -2180,10 +2179,9 @@ TEST(ASTMatchersTest, NamesMember_CXXDependentScopeMemberExpr) { EXPECT_TRUE(matches( Code, cxxDependentScopeMemberExpr( - hasObjectExpression(declRefExpr( - hasType(elaboratedType(namesType(templateSpecializationType( - hasDeclaration(classTemplateDecl(has(cxxRecordDecl( - has(varDecl(hasName("mem")).bind("templMem")))))))))))), + hasObjectExpression(declRefExpr(hasType(templateSpecializationType( + hasDeclaration(classTemplateDecl(has(cxxRecordDecl( + has(varDecl(hasName("mem")).bind("templMem")))))))))), memberHasSameNameAsBoundNode("templMem")))); } { diff --git a/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp index d11609c..195ac67 100644 --- a/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp +++ b/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp @@ -1809,8 +1809,7 @@ TEST_P(ASTMatchersTest, PointerType_MatchesPointersToConstTypes) { TEST_P(ASTMatchersTest, TypedefType) { EXPECT_TRUE(matches("typedef int X; X a;", - varDecl(hasName("a"), hasType(elaboratedType( - namesType(typedefType())))))); + varDecl(hasName("a"), hasType(typedefType())))); } TEST_P(ASTMatchersTest, TemplateSpecializationType) { @@ -1859,7 +1858,7 @@ TEST_P(ASTMatchersTest, ElaboratedType) { "N::M::D d;", elaboratedType())); EXPECT_TRUE(matches("class C {} c;", elaboratedType())); - EXPECT_TRUE(matches("class C {}; C c;", elaboratedType())); + EXPECT_TRUE(notMatches("class C {}; C c;", elaboratedType())); } TEST_P(ASTMatchersTest, SubstTemplateTypeParmType) { @@ -2180,8 +2179,7 @@ TEST_P(ASTMatchersTest, } EXPECT_TRUE(matches( "template <typename T> class C {}; C<char> var;", - varDecl(hasName("var"), hasTypeLoc(elaboratedTypeLoc(hasNamedTypeLoc( - templateSpecializationTypeLoc())))))); + varDecl(hasName("var"), hasTypeLoc(templateSpecializationTypeLoc())))); } TEST_P( @@ -2220,12 +2218,13 @@ TEST_P(ASTMatchersTest, } TEST_P(ASTMatchersTest, - ElaboratedTypeLocTest_BindsToBareElaboratedObjectDeclaration) { + ElaboratedTypeLocTest_DoesNotBindToNonElaboratedObjectDeclaration) { if (!GetParam().isCXX()) { return; } - EXPECT_TRUE(matches("class C {}; C c;", - varDecl(hasName("c"), hasTypeLoc(elaboratedTypeLoc())))); + EXPECT_TRUE( + notMatches("class C {}; C c;", + varDecl(hasName("c"), hasTypeLoc(elaboratedTypeLoc())))); } TEST_P( @@ -2234,17 +2233,19 @@ TEST_P( if (!GetParam().isCXX()) { return; } - EXPECT_TRUE(matches("namespace N { class D {}; } using N::D; D d;", - varDecl(hasName("d"), hasTypeLoc(elaboratedTypeLoc())))); + EXPECT_TRUE( + notMatches("namespace N { class D {}; } using N::D; D d;", + varDecl(hasName("d"), hasTypeLoc(elaboratedTypeLoc())))); } TEST_P(ASTMatchersTest, - ElaboratedTypeLocTest_BindsToBareElaboratedStructDeclaration) { + ElaboratedTypeLocTest_DoesNotBindToNonElaboratedStructDeclaration) { if (!GetParam().isCXX()) { return; } - EXPECT_TRUE(matches("struct s {}; s ss;", - varDecl(hasName("ss"), hasTypeLoc(elaboratedTypeLoc())))); + EXPECT_TRUE( + notMatches("struct s {}; s ss;", + varDecl(hasName("ss"), hasTypeLoc(elaboratedTypeLoc())))); } TEST_P(ASTMatchersTest, LambdaCaptureTest) { diff --git a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp index 11f293f..8b3881a 100644 --- a/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp +++ b/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp @@ -187,15 +187,13 @@ TEST(TypeMatcher, MatchesDeclTypes) { parmVarDecl(hasType(namedDecl(hasName("T")))))); // InjectedClassNameType EXPECT_TRUE(matches("template <typename T> struct S {" - " void f(S s);" - "};", - parmVarDecl(hasType(elaboratedType( - namesType(injectedClassNameType())))))); + " void f(S s);" + "};", + parmVarDecl(hasType(injectedClassNameType())))); EXPECT_TRUE(notMatches("template <typename T> struct S {" - " void g(S<T> s);" - "};", - parmVarDecl(hasType(elaboratedType( - namesType(injectedClassNameType())))))); + " void g(S<T> s);" + "};", + parmVarDecl(hasType(injectedClassNameType())))); // InjectedClassNameType -> CXXRecordDecl EXPECT_TRUE(matches("template <typename T> struct S {" " void f(S s);" @@ -245,28 +243,24 @@ TEST(HasDeclaration, ElaboratedType) { } TEST(HasDeclaration, HasDeclarationOfTypeWithDecl) { - EXPECT_TRUE(matches( - "typedef int X; X a;", - varDecl(hasName("a"), hasType(elaboratedType(namesType( - typedefType(hasDeclaration(decl())))))))); + EXPECT_TRUE(matches("typedef int X; X a;", + varDecl(hasName("a"), + hasType(typedefType(hasDeclaration(decl())))))); // FIXME: Add tests for other types with getDecl() (e.g. RecordType) } TEST(HasDeclaration, HasDeclarationOfTemplateSpecializationType) { - EXPECT_TRUE(matches( - "template <typename T> class A {}; A<int> a;", - varDecl(hasType(elaboratedType(namesType(templateSpecializationType( - hasDeclaration(namedDecl(hasName("A")))))))))); - EXPECT_TRUE(matches( - "template <typename T> class A {};" - "template <typename T> class B { A<T> a; };", - fieldDecl(hasType(elaboratedType(namesType(templateSpecializationType( - hasDeclaration(namedDecl(hasName("A")))))))))); - EXPECT_TRUE(matches( - "template <typename T> class A {}; A<int> a;", - varDecl(hasType(elaboratedType(namesType( - templateSpecializationType(hasDeclaration(cxxRecordDecl())))))))); + EXPECT_TRUE(matches("template <typename T> class A {}; A<int> a;", + varDecl(hasType(templateSpecializationType( + hasDeclaration(namedDecl(hasName("A")))))))); + EXPECT_TRUE(matches("template <typename T> class A {};" + "template <typename T> class B { A<T> a; };", + fieldDecl(hasType(templateSpecializationType( + hasDeclaration(namedDecl(hasName("A")))))))); + EXPECT_TRUE(matches("template <typename T> class A {}; A<int> a;", + varDecl(hasType(templateSpecializationType( + hasDeclaration(cxxRecordDecl())))))); } TEST(HasDeclaration, HasDeclarationOfCXXNewExpr) { @@ -276,10 +270,9 @@ TEST(HasDeclaration, HasDeclarationOfCXXNewExpr) { } TEST(HasDeclaration, HasDeclarationOfTypeAlias) { - EXPECT_TRUE(matches( - "template <typename T> using C = T; C<int> c;", - varDecl(hasType(elaboratedType(namesType(templateSpecializationType( - hasDeclaration(typeAliasTemplateDecl())))))))); + EXPECT_TRUE(matches("template <typename T> using C = T; C<int> c;", + varDecl(hasType(templateSpecializationType( + hasDeclaration(typeAliasTemplateDecl())))))); } TEST(HasUnqualifiedDesugaredType, DesugarsUsing) { @@ -400,9 +393,9 @@ TEST(HasTypeLoc, MatchesCXXBaseSpecifierAndCtorInitializer) { )cpp"; EXPECT_TRUE(matches( - code, cxxRecordDecl(hasAnyBase(hasTypeLoc(loc(asString("Foo"))))))); - EXPECT_TRUE( - matches(code, cxxCtorInitializer(hasTypeLoc(loc(asString("Foo")))))); + code, cxxRecordDecl(hasAnyBase(hasTypeLoc(loc(asString("class Foo"))))))); + EXPECT_TRUE(matches( + code, cxxCtorInitializer(hasTypeLoc(loc(asString("class Foo")))))); } TEST(HasTypeLoc, MatchesCXXFunctionalCastExpr) { @@ -414,13 +407,13 @@ TEST(HasTypeLoc, MatchesCXXNewExpr) { EXPECT_TRUE(matches("auto* x = new int(3);", cxxNewExpr(hasTypeLoc(loc(asString("int")))))); EXPECT_TRUE(matches("class Foo{}; auto* x = new Foo();", - cxxNewExpr(hasTypeLoc(loc(asString("Foo")))))); + cxxNewExpr(hasTypeLoc(loc(asString("class Foo")))))); } TEST(HasTypeLoc, MatchesCXXTemporaryObjectExpr) { EXPECT_TRUE( matches("struct Foo { Foo(int, int); }; auto x = Foo(1, 2);", - cxxTemporaryObjectExpr(hasTypeLoc(loc(asString("Foo")))))); + cxxTemporaryObjectExpr(hasTypeLoc(loc(asString("struct Foo")))))); } TEST(HasTypeLoc, MatchesCXXUnresolvedConstructExpr) { @@ -446,8 +439,9 @@ TEST(HasTypeLoc, MatchesDeclaratorDecl) { varDecl(hasName("x"), hasTypeLoc(loc(asString("int")))))); EXPECT_TRUE(matches("int x(3);", varDecl(hasName("x"), hasTypeLoc(loc(asString("int")))))); - EXPECT_TRUE(matches("struct Foo { Foo(int, int); }; Foo x(1, 2);", - varDecl(hasName("x"), hasTypeLoc(loc(asString("Foo")))))); + EXPECT_TRUE( + matches("struct Foo { Foo(int, int); }; Foo x(1, 2);", + varDecl(hasName("x"), hasTypeLoc(loc(asString("struct Foo")))))); // Make sure we don't crash on implicit constructors. EXPECT_TRUE(notMatches("class X {}; X x;", @@ -6104,21 +6098,19 @@ TEST(HasReferentLoc, DoesNotBindToParameterWithoutIntReferenceTypeLoc) { } TEST(HasAnyTemplateArgumentLoc, BindsToSpecializationWithIntArgument) { - EXPECT_TRUE(matches( - "template<typename T> class A {}; A<int> a;", - varDecl(hasName("a"), - hasTypeLoc(elaboratedTypeLoc(hasNamedTypeLoc( - templateSpecializationTypeLoc(hasAnyTemplateArgumentLoc( - hasTypeLoc(loc(asString("int"))))))))))); + EXPECT_TRUE( + matches("template<typename T> class A {}; A<int> a;", + varDecl(hasName("a"), hasTypeLoc(templateSpecializationTypeLoc( + hasAnyTemplateArgumentLoc(hasTypeLoc( + loc(asString("int"))))))))); } TEST(HasAnyTemplateArgumentLoc, BindsToSpecializationWithDoubleArgument) { - EXPECT_TRUE(matches( - "template<typename T> class A {}; A<double> a;", - varDecl(hasName("a"), - hasTypeLoc(elaboratedTypeLoc(hasNamedTypeLoc( - templateSpecializationTypeLoc(hasAnyTemplateArgumentLoc( - hasTypeLoc(loc(asString("double"))))))))))); + EXPECT_TRUE( + matches("template<typename T> class A {}; A<double> a;", + varDecl(hasName("a"), hasTypeLoc(templateSpecializationTypeLoc( + hasAnyTemplateArgumentLoc(hasTypeLoc( + loc(asString("double"))))))))); } TEST(HasAnyTemplateArgumentLoc, BindsToExplicitSpecializationWithIntArgument) { @@ -6178,21 +6170,19 @@ TEST(HasAnyTemplateArgumentLoc, } TEST(HasTemplateArgumentLoc, BindsToSpecializationWithIntArgument) { - EXPECT_TRUE( - matches("template<typename T> class A {}; A<int> a;", - varDecl(hasName("a"), - hasTypeLoc(elaboratedTypeLoc(hasNamedTypeLoc( - templateSpecializationTypeLoc(hasTemplateArgumentLoc( - 0, hasTypeLoc(loc(asString("int"))))))))))); + EXPECT_TRUE(matches( + "template<typename T> class A {}; A<int> a;", + varDecl(hasName("a"), + hasTypeLoc(templateSpecializationTypeLoc(hasTemplateArgumentLoc( + 0, hasTypeLoc(loc(asString("int"))))))))); } TEST(HasTemplateArgumentLoc, BindsToSpecializationWithDoubleArgument) { - EXPECT_TRUE( - matches("template<typename T> class A {}; A<double> a;", - varDecl(hasName("a"), - hasTypeLoc(elaboratedTypeLoc(hasNamedTypeLoc( - templateSpecializationTypeLoc(hasTemplateArgumentLoc( - 0, hasTypeLoc(loc(asString("double"))))))))))); + EXPECT_TRUE(matches( + "template<typename T> class A {}; A<double> a;", + varDecl(hasName("a"), + hasTypeLoc(templateSpecializationTypeLoc(hasTemplateArgumentLoc( + 0, hasTypeLoc(loc(asString("double"))))))))); } TEST(HasTemplateArgumentLoc, BindsToExplicitSpecializationWithIntArgument) { @@ -6330,7 +6320,7 @@ TEST(HasNamedTypeLoc, BindsToElaboratedObjectDeclaration) { } TEST(HasNamedTypeLoc, DoesNotBindToNonElaboratedObjectDeclaration) { - EXPECT_TRUE(matches( + EXPECT_TRUE(notMatches( R"( template <typename T> class C {}; diff --git a/clang/unittests/Introspection/IntrospectionTest.cpp b/clang/unittests/Introspection/IntrospectionTest.cpp index 5f5b231..69e4616 100644 --- a/clang/unittests/Introspection/IntrospectionTest.cpp +++ b/clang/unittests/Introspection/IntrospectionTest.cpp @@ -780,23 +780,13 @@ struct B : A { EXPECT_THAT( ExpectedLocations, UnorderedElementsAre( +STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getBeginLoc()), STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getEndLoc()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), STRING_LOCATION_PAIR(CtorInit, getLParenLoc()), STRING_LOCATION_PAIR(CtorInit, getRParenLoc()), STRING_LOCATION_PAIR(CtorInit, getSourceLocation()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getEndLoc()), +STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getBeginLoc()), STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getEndLoc()) )); @@ -808,17 +798,11 @@ STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getEndLoc()) EXPECT_THAT( ExpectedRanges, UnorderedElementsAre( -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getSourceRange()))); + STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getLocalSourceRange()), + STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getSourceRange()), + STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getLocalSourceRange()), + STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getSourceRange()), + STRING_LOCATION_PAIR(CtorInit, getSourceRange()))); // clang-format on } @@ -898,31 +882,26 @@ struct C { STRING_LOCATION_PAIR(CtorInit, getLParenLoc()), STRING_LOCATION_PAIR(CtorInit, getRParenLoc()), STRING_LOCATION_PAIR(CtorInit, getSourceLocation()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()) +STRING_LOCATION_PAIR(CtorInit, + getTypeSourceInfo()->getTypeLoc().getBeginLoc()), +STRING_LOCATION_PAIR(CtorInit, + getTypeSourceInfo()->getTypeLoc().getEndLoc()), +STRING_LOCATION_PAIR(CtorInit, + getTypeSourceInfo()->getTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()) )); // clang-format on auto ExpectedRanges = FormatExpected<SourceRange>(Result.RangeAccessors); - // clang-format off EXPECT_THAT( ExpectedRanges, UnorderedElementsAre( -STRING_LOCATION_PAIR(CtorInit, getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getSourceRange()) - )); - // clang-format on + STRING_LOCATION_PAIR(CtorInit, getSourceRange()), + STRING_LOCATION_PAIR( + CtorInit, + getTypeSourceInfo()->getTypeLoc().getLocalSourceRange()), + STRING_LOCATION_PAIR( + CtorInit, getTypeSourceInfo()->getTypeLoc().getSourceRange()))); } TEST(Introspection, SourceLocations_CXXCtorInitializer_pack) { @@ -964,57 +943,38 @@ struct D : Templ<T...> { EXPECT_EQ( llvm::makeArrayRef(ExpectedLocations), (ArrayRef<std::pair<std::string, SourceLocation>>{ -STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getLAngleLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getRAngleLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getTemplateNameLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getBeginLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getEndLoc()), +STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getAs<clang::TemplateSpecializationTypeLoc>().getLAngleLoc()), +STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getAs<clang::TemplateSpecializationTypeLoc>().getRAngleLoc()), +STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getAs<clang::TemplateSpecializationTypeLoc>().getTemplateNameLoc()), STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getBeginLoc()), STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getEndLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getLAngleLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getRAngleLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getTemplateNameLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getBeginLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getEndLoc()), STRING_LOCATION_STDPAIR(CtorInit, getEllipsisLoc()), STRING_LOCATION_STDPAIR(CtorInit, getLParenLoc()), STRING_LOCATION_STDPAIR(CtorInit, getMemberLocation()), STRING_LOCATION_STDPAIR(CtorInit, getRParenLoc()), STRING_LOCATION_STDPAIR(CtorInit, getSourceLocation()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getLAngleLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getRAngleLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getTemplateNameLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getBeginLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getEndLoc()), +STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getLAngleLoc()), +STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getRAngleLoc()), +STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getTemplateNameLoc()), STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getBeginLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getEndLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getLAngleLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getRAngleLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getTemplateNameLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getBeginLoc()), -STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getEndLoc()) +STRING_LOCATION_STDPAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getEndLoc()) })); // clang-format on auto ExpectedRanges = FormatExpected<SourceRange>(Result.RangeAccessors); - // clang-format off EXPECT_THAT( ExpectedRanges, UnorderedElementsAre( -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getNextTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getTypeSourceInfo()->getTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(CtorInit, getSourceRange()) - )); - // clang-format on + STRING_LOCATION_PAIR(CtorInit, + getBaseClassLoc().getLocalSourceRange()), + STRING_LOCATION_PAIR(CtorInit, getBaseClassLoc().getSourceRange()), + STRING_LOCATION_PAIR(CtorInit, getSourceRange()), + STRING_LOCATION_PAIR( + CtorInit, + getTypeSourceInfo()->getTypeLoc().getLocalSourceRange()), + STRING_LOCATION_PAIR( + CtorInit, getTypeSourceInfo()->getTypeLoc().getSourceRange()))); } TEST(Introspection, SourceLocations_CXXBaseSpecifier_plain) { @@ -1031,7 +991,7 @@ class B : A {}; auto BoundNodes = ast_matchers::match( decl(hasDescendant(cxxRecordDecl(hasDirectBase( - cxxBaseSpecifier(hasType(asString("A"))).bind("base"))))), + cxxBaseSpecifier(hasType(asString("class A"))).bind("base"))))), TU, Ctx); EXPECT_EQ(BoundNodes.size(), 1u); @@ -1047,16 +1007,11 @@ class B : A {}; EXPECT_THAT(ExpectedLocations, UnorderedElementsAre( STRING_LOCATION_PAIR(Base, getBaseTypeLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getBeginLoc()), STRING_LOCATION_PAIR(Base, getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getEndLoc()), STRING_LOCATION_PAIR(Base, getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()) +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getEndLoc()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getBeginLoc()) )); // clang-format on @@ -1064,12 +1019,9 @@ STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().ge // clang-format off EXPECT_THAT(ExpectedRanges, UnorderedElementsAre( -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getSourceRange()), +STRING_LOCATION_PAIR(Base, getSourceRange()), STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(Base, getSourceRange()) +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getLocalSourceRange()) )); // clang-format on } @@ -1088,7 +1040,7 @@ class B : public A {}; auto BoundNodes = ast_matchers::match( decl(hasDescendant(cxxRecordDecl(hasDirectBase( - cxxBaseSpecifier(hasType(asString("A"))).bind("base"))))), + cxxBaseSpecifier(hasType(asString("class A"))).bind("base"))))), TU, Ctx); EXPECT_EQ(BoundNodes.size(), 1u); @@ -1103,17 +1055,12 @@ class B : public A {}; // clang-format off EXPECT_THAT(ExpectedLocations, UnorderedElementsAre( -STRING_LOCATION_PAIR(Base, getBeginLoc()), STRING_LOCATION_PAIR(Base, getBaseTypeLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getEndLoc()), +STRING_LOCATION_PAIR(Base, getBeginLoc()), STRING_LOCATION_PAIR(Base, getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()) +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getEndLoc()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getBeginLoc()) )); // clang-format on @@ -1122,10 +1069,7 @@ STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().ge // clang-format off EXPECT_THAT(ExpectedRanges, UnorderedElementsAre( STRING_LOCATION_PAIR(Base, getSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getSourceRange()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getLocalSourceRange()), STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getSourceRange()) )); // clang-format on @@ -1146,7 +1090,7 @@ class C : virtual B, A {}; auto BoundNodes = ast_matchers::match( decl(hasDescendant(cxxRecordDecl(hasDirectBase( - cxxBaseSpecifier(hasType(asString("A"))).bind("base"))))), + cxxBaseSpecifier(hasType(asString("class A"))).bind("base"))))), TU, Ctx); EXPECT_EQ(BoundNodes.size(), 1u); @@ -1162,16 +1106,11 @@ class C : virtual B, A {}; EXPECT_THAT(ExpectedLocations, UnorderedElementsAre( STRING_LOCATION_PAIR(Base, getBaseTypeLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getBeginLoc()), STRING_LOCATION_PAIR(Base, getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getEndLoc()), STRING_LOCATION_PAIR(Base, getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()) +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getBeginLoc()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::TypeSpecTypeLoc>().getNameLoc()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getEndLoc()) )); // clang-format on @@ -1179,12 +1118,9 @@ STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().ge // clang-format off EXPECT_THAT(ExpectedRanges, UnorderedElementsAre( -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getSourceRange()), +STRING_LOCATION_PAIR(Base, getSourceRange()), STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(Base, getSourceRange()) +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getLocalSourceRange()) )); // clang-format on } @@ -1220,20 +1156,13 @@ class B : A<int, bool> {}; EXPECT_THAT(ExpectedLocations, UnorderedElementsAre( STRING_LOCATION_PAIR(Base, getBaseTypeLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getBeginLoc()), STRING_LOCATION_PAIR(Base, getBeginLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getTemplateNameLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getTemplateNameLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getLAngleLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getLAngleLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getEndLoc()), STRING_LOCATION_PAIR(Base, getEndLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getRAngleLoc()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getRAngleLoc()) +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getBeginLoc()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getTemplateNameLoc()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getLAngleLoc()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getEndLoc()), +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::TemplateSpecializationTypeLoc>().getRAngleLoc()) )); // clang-format on @@ -1241,12 +1170,9 @@ STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().ge // clang-format off EXPECT_THAT(ExpectedRanges, UnorderedElementsAre( -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getLocalSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getAs<clang::ElaboratedTypeLoc>().getNamedTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getNextTypeLoc().getSourceRange()), +STRING_LOCATION_PAIR(Base, getSourceRange()), STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getSourceRange()), -STRING_LOCATION_PAIR(Base, getSourceRange()) +STRING_LOCATION_PAIR(Base, getTypeSourceInfo()->getTypeLoc().getLocalSourceRange()) )); // clang-format on } diff --git a/clang/unittests/Sema/CodeCompleteTest.cpp b/clang/unittests/Sema/CodeCompleteTest.cpp index 3385628..dae0793 100644 --- a/clang/unittests/Sema/CodeCompleteTest.cpp +++ b/clang/unittests/Sema/CodeCompleteTest.cpp @@ -250,7 +250,7 @@ TEST(PreferredTypeTest, BinaryExpr) { a | ^1; a & ^1; } )cpp"; - EXPECT_THAT(collectPreferredTypes(Code), Each("A")); + EXPECT_THAT(collectPreferredTypes(Code), Each("enum A")); Code = R"cpp( enum class A {}; @@ -260,7 +260,7 @@ TEST(PreferredTypeTest, BinaryExpr) { a | ^a; a & ^a; } )cpp"; - EXPECT_THAT(collectPreferredTypes(Code), Each("A")); + EXPECT_THAT(collectPreferredTypes(Code), Each("enum A")); // Binary shifts. Code = R"cpp( @@ -296,7 +296,7 @@ TEST(PreferredTypeTest, BinaryExpr) { c = ^c; c += ^c; c -= ^c; c *= ^c; c /= ^c; c %= ^c; } )cpp"; - EXPECT_THAT(collectPreferredTypes(Code), Each("Cls")); + EXPECT_THAT(collectPreferredTypes(Code), Each("class Cls")); Code = R"cpp( class Cls {}; diff --git a/clang/unittests/StaticAnalyzer/SValTest.cpp b/clang/unittests/StaticAnalyzer/SValTest.cpp index bb6c974..c41a501 100644 --- a/clang/unittests/StaticAnalyzer/SValTest.cpp +++ b/clang/unittests/StaticAnalyzer/SValTest.cpp @@ -314,10 +314,7 @@ void foo(int x) { ASSERT_TRUE(LD.has_value()); auto LDT = LD->getType(Context); ASSERT_FALSE(LDT.isNull()); - const auto *DElaboratedType = dyn_cast<ElaboratedType>(LDT); - ASSERT_NE(DElaboratedType, nullptr); - const auto *DRecordType = - dyn_cast<RecordType>(DElaboratedType->getNamedType()); + const auto *DRecordType = dyn_cast<RecordType>(LDT); ASSERT_NE(DRecordType, nullptr); EXPECT_EQ("TestStruct", DRecordType->getDecl()->getName()); } diff --git a/clang/unittests/StaticAnalyzer/TestReturnValueUnderConstruction.cpp b/clang/unittests/StaticAnalyzer/TestReturnValueUnderConstruction.cpp index 6661b33..eb0ee6c 100644 --- a/clang/unittests/StaticAnalyzer/TestReturnValueUnderConstruction.cpp +++ b/clang/unittests/StaticAnalyzer/TestReturnValueUnderConstruction.cpp @@ -38,8 +38,7 @@ public: const auto *RetReg = cast<TypedValueRegion>(RetVal->getAsRegion()); const Expr *OrigExpr = Call.getOriginExpr(); - ASSERT_EQ(OrigExpr->getType()->getCanonicalTypeInternal(), - RetReg->getValueType()->getCanonicalTypeInternal()); + ASSERT_EQ(OrigExpr->getType(), RetReg->getValueType()); } }; diff --git a/clang/unittests/Tooling/QualTypeNamesTest.cpp b/clang/unittests/Tooling/QualTypeNamesTest.cpp index 4e51560..336a27e 100644 --- a/clang/unittests/Tooling/QualTypeNamesTest.cpp +++ b/clang/unittests/Tooling/QualTypeNamesTest.cpp @@ -33,7 +33,7 @@ struct TypeNameVisitor : TestVisitor<TypeNameVisitor> { ADD_FAILURE() << "Typename::getFullyQualifiedName failed for " << VD->getQualifiedNameAsString() << std::endl << " Actual: " << ActualName << std::endl - << " Expected: " << ExpectedName; + << " Exepcted: " << ExpectedName; } } return true; @@ -42,7 +42,7 @@ struct TypeNameVisitor : TestVisitor<TypeNameVisitor> { // named namespaces inside anonymous namespaces -TEST(QualTypeNameTest, Simple) { +TEST(QualTypeNameTest, getFullyQualifiedName) { TypeNameVisitor Visitor; // Simple case to test the test framework itself. Visitor.ExpectedQualTypeNames["CheckInt"] = "int"; @@ -170,9 +170,7 @@ TEST(QualTypeNameTest, Simple) { "};\n" "EnumScopeClass::AnEnum AnEnumVar;\n", TypeNameVisitor::Lang_CXX11); -} -TEST(QualTypeNameTest, Complex) { TypeNameVisitor Complex; Complex.ExpectedQualTypeNames["CheckTX"] = "B::TX"; Complex.runOver( @@ -189,9 +187,7 @@ TEST(QualTypeNameTest, Complex) { " TX CheckTX;" " struct A { typedef int X; };" "}"); -} -TEST(QualTypeNameTest, DoubleUsing) { TypeNameVisitor DoubleUsing; DoubleUsing.ExpectedQualTypeNames["direct"] = "a::A<0>"; DoubleUsing.ExpectedQualTypeNames["indirect"] = "b::B"; @@ -210,9 +206,7 @@ TEST(QualTypeNameTest, DoubleUsing) { B double_indirect; } )cpp"); -} -TEST(QualTypeNameTest, GlobalNsPrefix) { TypeNameVisitor GlobalNsPrefix; GlobalNsPrefix.WithGlobalNsPrefix = true; GlobalNsPrefix.ExpectedQualTypeNames["IntVal"] = "int"; @@ -250,9 +244,7 @@ TEST(QualTypeNameTest, GlobalNsPrefix) { " }\n" "}\n" ); -} -TEST(QualTypeNameTest, InlineNamespace) { TypeNameVisitor InlineNamespace; InlineNamespace.ExpectedQualTypeNames["c"] = "B::C"; InlineNamespace.runOver("inline namespace A {\n" @@ -263,9 +255,7 @@ TEST(QualTypeNameTest, InlineNamespace) { "using namespace A::B;\n" "C c;\n", TypeNameVisitor::Lang_CXX11); -} -TEST(QualTypeNameTest, AnonStrucs) { TypeNameVisitor AnonStrucs; AnonStrucs.ExpectedQualTypeNames["a"] = "short"; AnonStrucs.ExpectedQualTypeNames["un_in_st_1"] = diff --git a/clang/unittests/Tooling/RecursiveASTVisitorTestTypeLocVisitor.cpp b/clang/unittests/Tooling/RecursiveASTVisitorTestTypeLocVisitor.cpp index 6c6670c..299e1b0 100644 --- a/clang/unittests/Tooling/RecursiveASTVisitorTestTypeLocVisitor.cpp +++ b/clang/unittests/Tooling/RecursiveASTVisitorTestTypeLocVisitor.cpp @@ -45,7 +45,7 @@ TEST(RecursiveASTVisitor, VisitsCXXBaseSpecifiersWithIncompleteInnerClass) { TEST(RecursiveASTVisitor, VisitsCXXBaseSpecifiersOfSelfReferentialType) { TypeLocVisitor Visitor; - Visitor.ExpectMatch("X<Y>", 2, 18, 2); + Visitor.ExpectMatch("X<class Y>", 2, 18); EXPECT_TRUE(Visitor.runOver( "template<typename T> class X {};\n" "class Y : public X<Y> {};")); diff --git a/clang/unittests/Tooling/StencilTest.cpp b/clang/unittests/Tooling/StencilTest.cpp index 45dab15..1f49c1a 100644 --- a/clang/unittests/Tooling/StencilTest.cpp +++ b/clang/unittests/Tooling/StencilTest.cpp @@ -43,7 +43,6 @@ static std::string wrapSnippet(StringRef ExtraPreface, T& operator*() const; }; } - template<class T> T desugar() { return T(); }; )cc"; return (Preface + ExtraPreface + "auto stencil_test_snippet = []{" + StatementCode + "};") @@ -546,7 +545,7 @@ TEST_F(StencilTest, DescribeQualifiedType) { TEST_F(StencilTest, DescribeUnqualifiedType) { std::string Snippet = "using N::C; C c; c;"; - std::string Expected = "C"; + std::string Expected = "N::C"; auto StmtMatch = matchStmt(Snippet, declRefExpr(hasType(qualType().bind("type")))); ASSERT_TRUE(StmtMatch); @@ -555,7 +554,7 @@ TEST_F(StencilTest, DescribeUnqualifiedType) { } TEST_F(StencilTest, DescribeAnonNamespaceType) { - std::string Snippet = "auto c = desugar<AnonC>(); c;"; + std::string Snippet = "AnonC c; c;"; std::string Expected = "(anonymous namespace)::AnonC"; auto StmtMatch = matchStmt(Snippet, declRefExpr(hasType(qualType().bind("type")))); |