| |
| @protocol foo; |
| @protocol foo2 |
| @end |
| @class itf; |
| |
| // Expressions |
| typedef typeof(@"foo" "bar") objc_string; |
| typedef typeof(@encode(int)) objc_encode; |
| typedef typeof(@protocol(foo2)) objc_protocol; |
| typedef typeof(@selector(noArgs)) objc_selector_noArgs; |
| typedef typeof(@selector(oneArg:)) objc_selector_oneArg; |
| typedef typeof(@selector(foo:bar:)) objc_selector_twoArg; |
| |
| |
| // Types. |
| typedef typeof(id<foo>) objc_id_protocol_ty; |
| |
| typedef typeof(itf*) objc_interface_ty; |
| typedef typeof(itf<foo>*) objc_qual_interface_ty; |
| |
| @interface PP |
| @property (assign) id prop; |
| @end |
| |
| static inline id getPseudoObject(PP *p) { |
| return p.prop; |
| } |