Home | History | Annotate | Download | only in SemaObjC
      1 // RUN: %clang_cc1 -pedantic -fsyntax-only -verify -Wno-objc-root-class %s
      2 typedef signed char BOOL;
      3 
      4 @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
      5 
      6 @protocol NSObject
      7 - (BOOL)isEqual:(id)object;
      8 @end
      9 
     10 @protocol NSCoding
     11 - (void)encodeWithCoder:(NSCoder *)aCoder;
     12 @end
     13 
     14 @interface NSObject <NSObject> {}
     15 @end
     16 
     17 typedef float CGFloat;
     18 
     19 @interface NSResponder : NSObject <NSCoding> {}
     20 @end
     21 
     22 @protocol XCSelectionSource;
     23 
     24 @interface XCSelection : NSResponder {}
     25 - (NSObject <XCSelectionSource> *) source;
     26 @end
     27 
     28 extern NSString * const XCActiveSelectionLevel;
     29 
     30 @interface XCActionManager : NSResponder {}
     31 +defaultActionManager;
     32 -selectionAtLevel:(NSString *const)s;
     33 @end
     34 
     35 @implementation XDMenuItemsManager // expected-warning {{cannot find interface declaration for 'XDMenuItemsManager'}}
     36 + (void)initialize {
     37   id<XCSelectionSource, NSObject> source = 
     38     [[[XCActionManager defaultActionManager] selectionAtLevel:XCActiveSelectionLevel] source];
     39 }
     40 @end
     41 
     42 @protocol NSTextStorageDelegate;
     43 @class NSNotification;
     44 
     45 @interface NSTextStorage : NSObject
     46 
     47 - (void)setDelegate:(id <NSTextStorageDelegate>)delegate; // expected-note{{passing argument to parameter 'delegate' here}}
     48 - (id <NSTextStorageDelegate>)delegate;
     49 
     50 @end
     51 
     52 @protocol NSTextStorageDelegate <NSObject>
     53 @optional
     54 
     55 - (void)textStorageWillProcessEditing:(NSNotification *)notification;
     56 - (void)textStorageDidProcessEditing:(NSNotification *)notification;
     57 
     58 @end
     59 
     60 @interface SKTText : NSObject {
     61     @private
     62 
     63 
     64     NSTextStorage *_contents;
     65 }
     66 @end
     67 
     68 @implementation SKTText
     69 
     70 
     71 - (NSTextStorage *)contents {
     72  [_contents setDelegate:self]; // expected-warning {{sending 'SKTText *' to parameter of incompatible type 'id<NSTextStorageDelegate>'}}
     73  return 0;
     74 }
     75 
     76 @end
     77