1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify %s 2*67e74705SXin Li// expected-no-diagnostics 3*67e74705SXin Li 4*67e74705SXin Li// rdar://9296866 5*67e74705SXin Li@interface NSResponder 6*67e74705SXin Li@end 7*67e74705SXin Li 8*67e74705SXin Li 9*67e74705SXin Li@interface NSView : NSResponder 10*67e74705SXin Li@end 11*67e74705SXin Li 12*67e74705SXin Li@interface WebView : NSView 13*67e74705SXin Li@end 14*67e74705SXin Li 15*67e74705SXin Li@protocol WebDocumentView 16*67e74705SXin Li@end 17*67e74705SXin Li 18*67e74705SXin Li@implementation NSView 19*67e74705SXin Li 20*67e74705SXin Li- (void) FUNC : (id)s { 21*67e74705SXin Li WebView *m_webView; 22*67e74705SXin Li NSView <WebDocumentView> *documentView; 23*67e74705SXin Li NSView *coordinateView = s ? documentView : m_webView; 24*67e74705SXin Li} 25*67e74705SXin Li@end 26*67e74705SXin Li 27*67e74705SXin Li// rdar://problem/19572837 28*67e74705SXin Li@protocol NSObject 29*67e74705SXin Li@end 30*67e74705SXin Li 31*67e74705SXin Li__attribute__((objc_root_class)) 32*67e74705SXin Li@interface NSObject <NSObject> 33*67e74705SXin Li@end 34*67e74705SXin Li 35*67e74705SXin Li@protocol Goable <NSObject> 36*67e74705SXin Li- (void)go; 37*67e74705SXin Li@end 38*67e74705SXin Li 39*67e74705SXin Li@protocol Drivable <Goable> 40*67e74705SXin Li- (void)drive; 41*67e74705SXin Li@end 42*67e74705SXin Li 43*67e74705SXin Li@interface Car : NSObject 44*67e74705SXin Li- (NSObject <Goable> *)bestGoable:(NSObject <Goable> *)drivable; 45*67e74705SXin Li@end 46*67e74705SXin Li 47*67e74705SXin Li@interface Car(Category) <Drivable> 48*67e74705SXin Li@end 49*67e74705SXin Li 50*67e74705SXin Li@interface Truck : Car 51*67e74705SXin Li@end 52*67e74705SXin Li 53*67e74705SXin Li@implementation Truck 54*67e74705SXin Li- (NSObject <Goable> *)bestGoable:(NSObject <Goable> *)drivable value:(int)value{ 55*67e74705SXin Li return value > 0 ? self : drivable; 56*67e74705SXin Li} 57*67e74705SXin Li@end 58