1// RUN: %clang_cc1 -fsyntax-only -Weverything -verify %s 2// expected-no-diagnostics 3/** A property may not be both 'readonly' and having a memory management attribute 4 (copy/retain/etc.). But, property declaration in primary class and protcols 5 are tentative as they may be overridden into a 'readwrite' property in class 6 extensions. So, do not issue any warning on 'readonly' and memory management 7 attributes in a property. 8*/ 9 10@interface Super { 11} 12@end 13 14@class NSString; 15 16@interface MyClass : Super 17@property(nonatomic, copy, readonly) NSString *prop; 18@property(nonatomic, copy, readonly) id warnProp; 19@end 20 21@interface MyClass () 22@property(nonatomic, copy, readwrite) NSString *prop; 23@end 24 25@implementation MyClass 26@synthesize prop; 27@synthesize warnProp; 28@end 29 30 31@protocol P 32@property(nonatomic, copy, readonly) NSString *prop; 33@property(nonatomic, copy, readonly) id warnProp; 34@end 35 36@interface YourClass : Super <P> 37@end 38 39@interface YourClass () 40@property(nonatomic, copy, readwrite) NSString *prop; 41@end 42 43@implementation YourClass 44@synthesize prop; 45@synthesize warnProp; 46@end 47 48