| // RUN: %clang_cc1  -fsyntax-only -fblocks -verify -Wno-objc-root-class %s | 
 |  | 
 | @protocol P | 
 | void p_foo(void) {} // expected-warning {{function definition inside an Objective-C container is deprecated}} | 
 | @end | 
 |  | 
 | @interface I | 
 | void foo(void) {} // expected-warning {{function definition inside an Objective-C container is deprecated}} | 
 | inline void v_foo(void) {} // expected-warning {{function definition inside an Objective-C container is deprecated}} | 
 | static int s_foo(void) {return 0; } // expected-warning {{function definition inside an Objective-C container is deprecated}} | 
 | static inline int si_val(void) { return 1; } // expected-warning {{function definition inside an Objective-C container is deprecated}} | 
 | @end | 
 |  | 
 | @interface I(CAT) | 
 | void cat_foo(void) {} // expected-warning {{function definition inside an Objective-C container is deprecated}} | 
 | @end | 
 |  | 
 | @implementation I | 
 | inline void v_imp_foo(void) {}  | 
 | @end | 
 |  | 
 | @implementation I(CAT) | 
 | void cat_imp_foo(void) {}  | 
 | @end | 
 |  | 
 | @interface PrototypeState | 
 |  | 
 | @property (strong, readwrite) id moin1; // expected-note {{property declared here}} | 
 |  | 
 | static inline void prototype_observe_moin1(void (^callback)(id)) { // expected-warning {{function definition inside an Objective-C container is deprecated}} | 
 |         (void)^(PrototypeState *prototypeState){ | 
 |             callback(prototypeState.moin1); // expected-error {{use of Objective-C property in function nested in Objective-C container not supported, move function outside its container}} | 
 |         }; | 
 | } | 
 | @end |