diff options
Diffstat (limited to 'test/SemaObjC/unimplemented-protocol-prop.m')
-rw-r--r-- | test/SemaObjC/unimplemented-protocol-prop.m | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/test/SemaObjC/unimplemented-protocol-prop.m b/test/SemaObjC/unimplemented-protocol-prop.m index d3de50efea58..fa3ed8ef121c 100644 --- a/test/SemaObjC/unimplemented-protocol-prop.m +++ b/test/SemaObjC/unimplemented-protocol-prop.m @@ -2,14 +2,12 @@ @protocol PROTOCOL0 @required -@property float MyProperty0; // expected-warning {{property 'MyProperty0' requires method 'MyProperty0' to be defined }} \ - // expected-warning {{property 'MyProperty0' requires method 'setMyProperty0:' to be defined}} +@property float MyProperty0; // expected-note 2 {{property declared}} @end @protocol PROTOCOL<PROTOCOL0> @required -@property float MyProperty; // expected-warning {{property 'MyProperty' requires method 'MyProperty' to be defined}} \ - // expected-warning {{property 'MyProperty' requires method 'setMyProperty:' to be defined}} +@property float MyProperty; // expected-note 2 {{property declared}} @optional @property float OptMyProperty; @end @@ -17,4 +15,25 @@ @interface I <PROTOCOL> @end -@implementation I @end // expected-note 4 {{implementation is here}} +@implementation I @end // expected-warning {{property 'MyProperty0' requires method 'MyProperty0' to be defined}} \ + // expected-warning {{property 'MyProperty0' requires method 'setMyProperty0:' to be defined}}\ + // expected-warning {{property 'MyProperty' requires method 'MyProperty' to be defined}} \ + // expected-warning {{property 'MyProperty' requires method 'setMyProperty:' to be defined}} + +// rdar://10120691 +// property is implemented in super class. No warning + +@protocol PROTOCOL1 +@property int MyProp; +@end + +@interface superclass +@property int MyProp; +@end + +@interface childclass : superclass <PROTOCOL1> +@end + +@implementation childclass +@end + |