| 224 | } |
| 225 | |
| 226 | void classTemplateDecl1() { |
| 227 | const char clang[] = "`-ClassTemplateDecl 0x29d1748 <a.cpp:1:1, col:59> col:25 C\n" |
| 228 | " |-TemplateTypeParmDecl 0x29d15f8 <col:10, col:16> col:16 referenced class depth 0 index 0 T\n" |
| 229 | " `-CXXRecordDecl 0x29d16b0 <col:19, col:59> col:25 class C definition\n" |
| 230 | " |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init\n" |
| 231 | " | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr\n" |
| 232 | " | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param\n" |
| 233 | " | |-MoveConstructor exists simple trivial needs_implicit\n" |
| 234 | " | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param\n" |
| 235 | " | |-MoveAssignment exists simple trivial needs_implicit\n" |
| 236 | " | `-Destructor simple irrelevant trivial needs_implicit\n" |
| 237 | " |-CXXRecordDecl 0x29d19b0 <col:19, col:25> col:25 implicit class C\n" |
| 238 | " |-AccessSpecDecl 0x29d1a48 <col:29, col:35> col:29 public\n" |
| 239 | " `-CXXMethodDecl 0x29d1b20 <col:37, col:57> col:39 foo 'T ()'\n" |
| 240 | " `-CompoundStmt 0x29d1c18 <col:45, col:57>\n" |
| 241 | " `-ReturnStmt 0x29d1c00 <col:47, col:54>\n" |
| 242 | " `-IntegerLiteral 0x29d1be0 <col:54> 'int' 0"; |
| 243 | ASSERT_EQUALS("", parse(clang)); |
| 244 | } |
| 245 | |
| 246 | void classTemplateDecl2() { |
| 247 | const char clang[] = "|-ClassTemplateDecl 0x244e748 <a.cpp:1:1, col:59> col:25 C\n" |