xref: /aosp_15_r20/external/clang/test/PCH/objc_exprs.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li 
2*67e74705SXin Li @protocol foo;
3*67e74705SXin Li @class itf;
4*67e74705SXin Li 
5*67e74705SXin Li // Expressions
6*67e74705SXin Li typedef typeof(@"foo" "bar") objc_string;
7*67e74705SXin Li typedef typeof(@encode(int)) objc_encode;
8*67e74705SXin Li typedef typeof(@protocol(foo)) objc_protocol;
9*67e74705SXin Li typedef typeof(@selector(noArgs)) objc_selector_noArgs;
10*67e74705SXin Li typedef typeof(@selector(oneArg:)) objc_selector_oneArg;
11*67e74705SXin Li typedef typeof(@selector(foo:bar:)) objc_selector_twoArg;
12*67e74705SXin Li 
13*67e74705SXin Li 
14*67e74705SXin Li // Types.
15*67e74705SXin Li typedef typeof(id<foo>) objc_id_protocol_ty;
16*67e74705SXin Li 
17*67e74705SXin Li typedef typeof(itf*) objc_interface_ty;
18*67e74705SXin Li typedef typeof(itf<foo>*) objc_qual_interface_ty;
19*67e74705SXin Li 
20*67e74705SXin Li @interface PP
property(assign)21*67e74705SXin Li @property (assign) id prop;
22*67e74705SXin Li @end
23*67e74705SXin Li 
24*67e74705SXin Li static inline id getPseudoObject(PP *p) {
25*67e74705SXin Li     return p.prop;
26*67e74705SXin Li }
27