xref: /aosp_15_r20/external/clang/test/Misc/ast-dump-decl.mm (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -Wno-unused -fblocks -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s
2*67e74705SXin Li
3*67e74705SXin Li@interface A
4*67e74705SXin Li@end
5*67e74705SXin Li
6*67e74705SXin Li@interface TestObjCImplementation : A
7*67e74705SXin Li@end
8*67e74705SXin Li
9*67e74705SXin Li@implementation TestObjCImplementation : A {
10*67e74705SXin Li  struct X {
11*67e74705SXin Li    int i;
12*67e74705SXin Li  } X;
13*67e74705SXin Li}
14*67e74705SXin Li- (void) foo {
15*67e74705SXin Li}
16*67e74705SXin Li@end
17*67e74705SXin Li// CHECK:      ObjCImplementationDecl{{.*}} TestObjCImplementation
18*67e74705SXin Li// CHECK-NEXT:   super ObjCInterface{{.*}} 'A'
19*67e74705SXin Li// CHECK-NEXT:   ObjCInterface{{.*}} 'TestObjCImplementation'
20*67e74705SXin Li// CHECK-NEXT:   CXXCtorInitializer{{.*}} 'X'
21*67e74705SXin Li// CHECK-NEXT:     CXXConstructExpr
22*67e74705SXin Li// CHECK-NEXT:   ObjCIvarDecl{{.*}} X
23*67e74705SXin Li// CHECK-NEXT:   ObjCMethodDecl{{.*}} foo
24*67e74705SXin Li
25*67e74705SXin Li// @() boxing expressions.
26*67e74705SXin Litemplate <typename T>
27*67e74705SXin Listruct BoxingTest {
28*67e74705SXin Li  static id box(T value) {
29*67e74705SXin Li    return @(value);
30*67e74705SXin Li  }
31*67e74705SXin Li};
32*67e74705SXin Li
33*67e74705SXin Li// CHECK: ObjCBoxedExpr{{.*}} '<dependent type>'{{$}}
34