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// property is implemented in super class. No warning 24 25@protocol PROTOCOL1 26@property int MyProp; 27@end 28 29@interface superclass 30@property int MyProp; 31@end 32 33@interface childclass : superclass <PROTOCOL1> 34@end 35 36@implementation childclass 37@end 38 39