2012-04-07 02:12:22 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
|
2013-04-26 05:59:34 +08:00
|
|
|
// expected-no-diagnostics
|
2010-01-21 03:36:21 +08:00
|
|
|
|
|
|
|
/* This test is for categories which don't implement the accessors but some accessors are
|
|
|
|
implemented in their base class implementation. In this case,no warning must be issued.
|
|
|
|
*/
|
|
|
|
|
|
|
|
@interface MyClass
|
|
|
|
{
|
|
|
|
int _foo;
|
|
|
|
}
|
|
|
|
@property(readonly) int foo;
|
|
|
|
@end
|
|
|
|
|
|
|
|
@implementation MyClass
|
|
|
|
- (int) foo { return _foo; }
|
|
|
|
@end
|
|
|
|
|
|
|
|
@interface MyClass (private)
|
|
|
|
@property(readwrite) int foo;
|
|
|
|
@end
|
|
|
|
|
|
|
|
@implementation MyClass (private)
|
|
|
|
- (void) setFoo:(int)foo { _foo = foo; }
|
|
|
|
@end
|
|
|
|
|
|
|
|
@interface MyClass (public)
|
2013-04-26 05:59:34 +08:00
|
|
|
@property(readwrite) int foo;
|
2010-01-21 03:36:21 +08:00
|
|
|
@end
|
|
|
|
|
2013-04-26 05:59:34 +08:00
|
|
|
@implementation MyClass (public)
|
2010-01-21 03:36:21 +08:00
|
|
|
@end
|
2012-12-20 02:58:55 +08:00
|
|
|
|
|
|
|
// rdar://12568064
|
|
|
|
// No warn of unimplemented property of protocols in category,
|
|
|
|
// when those properties will be implemented in category's primary
|
|
|
|
// class or one of its super classes.
|
|
|
|
@interface HBSuperclass
|
|
|
|
@property (nonatomic) char myProperty;
|
|
|
|
@property (nonatomic) char myProperty2;
|
|
|
|
@end
|
|
|
|
|
|
|
|
@interface HBClass : HBSuperclass
|
|
|
|
@end
|
|
|
|
|
|
|
|
@protocol HBProtocol
|
|
|
|
@property (nonatomic) char myProperty;
|
|
|
|
@property (nonatomic) char myProperty2;
|
|
|
|
@end
|
|
|
|
|
|
|
|
@interface HBSuperclass (HBSCategory)<HBProtocol>
|
|
|
|
@end
|
|
|
|
|
|
|
|
@implementation HBSuperclass (HBSCategory)
|
|
|
|
@end
|
|
|
|
|
|
|
|
@interface HBClass (HBCategory)<HBProtocol>
|
|
|
|
@end
|
|
|
|
|
|
|
|
@implementation HBClass (HBCategory)
|
|
|
|
@end
|