From 90f85dfc14bc6020486eb2d2c6399f8207ef3625 Mon Sep 17 00:00:00 2001 From: Eduardo Caldas Date: Mon, 24 Aug 2020 10:30:09 +0000 Subject: [PATCH] [SyntaxTree] Group tests related to `using` Differential Revision: https://reviews.llvm.org/D86443 --- clang/unittests/Tooling/Syntax/BuildTreeTest.cpp | 120 ++++++++++------------- 1 file changed, 54 insertions(+), 66 deletions(-) diff --git a/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp b/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp index 4fc648d..acbe905 100644 --- a/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp +++ b/clang/unittests/Tooling/Syntax/BuildTreeTest.cpp @@ -2494,7 +2494,7 @@ UsingNamespaceDirective )txt"})); } -TEST_P(SyntaxTreeTest, UsingDeclaration) { +TEST_P(SyntaxTreeTest, UsingDeclaration_Namespace) { if (!GetParam().isCXX()) { return; } @@ -2515,6 +2515,59 @@ UsingDeclaration )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 @@ template struct X::Y {}; )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 @@ TemplateDeclaration )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( -- 2.7.4