)txt"}));
}
-TEST_P(SyntaxTreeTest, UsingDeclaration) {
+TEST_P(SyntaxTreeTest, UsingDeclaration_Namespace) {
if (!GetParam().isCXX()) {
return;
}
)txt"}));
}
+TEST_P(SyntaxTreeTest, UsingDeclaration_ClassMember) {
+ if (!GetParam().isCXX()) {
+ return;
+ }
+ EXPECT_TRUE(treeDumpEqualOnAnnotations(
+ R"cpp(
+template <class T> 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(
)txt"));
}
-TEST_P(SyntaxTreeTest, TemplatesUsingUsing) {
- if (!GetParam().isCXX()) {
- return;
- }
- EXPECT_TRUE(treeDumpEqual(
- R"cpp(
-template <class T> 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;
)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(