diff --git a/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp b/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp --- a/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp +++ b/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp @@ -2494,7 +2494,7 @@ )txt"})); } -TEST_P(SyntaxTreeTest, UsingDeclaration) { +TEST_P(SyntaxTreeTest, UsingDeclaration_Namespace) { if (!GetParam().isCXX()) { return; } @@ -2515,6 +2515,59 @@ )txt"})); } +TEST_P(SyntaxTreeTest, UsingDeclaration_ClassMember) { + if (!GetParam().isCXX()) { + return; + } + EXPECT_TRUE(treeDumpEqualOnAnnotations( + R"cpp( +template struct X { + [[using T::foo;]] + [[using typename T::bar;]] +}; +)cpp", + {R"txt( +UsingDeclaration +|-using +|-NestedNameSpecifier +| |-IdentifierNameSpecifier +| | `-T +| `-:: +|-foo +`-; +)txt", + R"txt( +UsingDeclaration +|-using +|-typename +|-NestedNameSpecifier +| |-IdentifierNameSpecifier +| | `-T +| `-:: +|-bar +`-; +)txt"})); +} + +TEST_P(SyntaxTreeTest, UsingTypeAlias) { + if (!GetParam().isCXX()) { + return; + } + EXPECT_TRUE(treeDumpEqual( + R"cpp( +using type = int; +)cpp", + R"txt( +*: TranslationUnit +`-TypeAliasDeclaration + |-using + |-type + |-= + |-int + `-; +)txt")); +} + TEST_P(SyntaxTreeTest, FreeStandingClass_ForwardDeclaration) { EXPECT_TRUE(treeDumpEqualOnAnnotations( R"cpp( @@ -3005,52 +3058,6 @@ )txt")); } -TEST_P(SyntaxTreeTest, TemplatesUsingUsing) { - if (!GetParam().isCXX()) { - return; - } - EXPECT_TRUE(treeDumpEqual( - R"cpp( -template struct X { - using T::foo; - using typename T::bar; -}; -)cpp", - R"txt( -*: TranslationUnit -`-TemplateDeclaration - |-template - |-< - |-UnknownDeclaration - | |-class - | `-T - |-> - `-SimpleDeclaration - |-struct - |-X - |-{ - |-UsingDeclaration - | |-using - | |-NestedNameSpecifier - | | |-IdentifierNameSpecifier - | | | `-T - | | `-:: - | |-foo - | `-; - |-UsingDeclaration - | |-using - | |-typename - | |-NestedNameSpecifier - | | |-IdentifierNameSpecifier - | | | `-T - | | `-:: - | |-bar - | `-; - |-} - `-; -)txt")); -} - TEST_P(SyntaxTreeTest, ExplicitClassTemplateInstantation_Definition) { if (!GetParam().isCXX()) { return; @@ -3152,25 +3159,6 @@ )txt"})); } -TEST_P(SyntaxTreeTest, UsingType) { - if (!GetParam().isCXX()) { - return; - } - EXPECT_TRUE(treeDumpEqual( - R"cpp( -using type = int; -)cpp", - R"txt( -*: TranslationUnit -`-TypeAliasDeclaration - |-using - |-type - |-= - |-int - `-; -)txt")); -} - TEST_P(SyntaxTreeTest, EmptyDeclaration) { EXPECT_TRUE(treeDumpEqual( R"cpp(