1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class -disable-objc-default-synthesize-properties %s 2 3 @protocol PROTOCOL0 4 @required 5 @property float MyProperty0; // expected-note 2 {{property declared}} 6 @end 7 8 @protocol PROTOCOL<PROTOCOL0> 9 @required 10 @property float MyProperty; // expected-note 2 {{property declared}} 11 @optional 12 @property float OptMyProperty; 13 @end 14 15 @interface I <PROTOCOL> 16 @end 17 18 @implementation I @end // expected-warning {{property 'MyProperty0' requires method 'MyProperty0' to be defined}} \ 19 // expected-warning {{property 'MyProperty0' requires method 'setMyProperty0:' to be defined}}\ 20 // expected-warning {{property 'MyProperty' requires method 'MyProperty' to be defined}} \ 21 // expected-warning {{property 'MyProperty' requires method 'setMyProperty:' to be defined}} 22 23 // rdar://10120691 24 // property is implemented in super class. No warning 25 26 @protocol PROTOCOL1 27 @property int MyProp; 28 @end 29 30 @interface superclass 31 @property int MyProp; 32 @end 33 34 @interface childclass : superclass <PROTOCOL1> 35 @end 36 37 @implementation childclass 38 @end 39 40