| // RUN: %clang_cc1  -fsyntax-only -verify %s | 
 |  | 
 | @protocol P1 | 
 | @optional | 
 | - (int) PMeth; | 
 | @required | 
 | - (void) : (double) arg; // expected-note {{method ':' declared here}} | 
 | @end | 
 |  | 
 | @interface NSImage <P1> | 
 | - (void) initialize; // expected-note {{method 'initialize' declared here}} | 
 | @end | 
 |  | 
 | @interface NSImage (AirPortUI) | 
 | - (void) initialize; | 
 | @end | 
 |  | 
 | @interface NSImage() | 
 | - (void) CEMeth; // expected-note {{method 'CEMeth' declared here}} | 
 | @end | 
 |  | 
 | @implementation NSImage (AirPortUI) | 
 | - (void) initialize {NSImage *p=0; [p initialize]; } // expected-warning {{category is implementing a method which will also be implemented by its primary class}} | 
 | - (int) PMeth{ return 0; } | 
 | - (void) : (double) arg{}; // expected-warning {{category is implementing a method which will also be implemented by its primary class}} | 
 | - (void) CEMeth {}; // expected-warning {{category is implementing a method which will also be implemented by its primary class}} | 
 | @end | 
 |  | 
 | typedef char BOOL; | 
 | @interface I | 
 | { | 
 |   BOOL allowsDeleting; | 
 | } | 
 | @property (nonatomic, assign, readwrite) BOOL allowsDeleting; | 
 | @end | 
 |  | 
 | @implementation I(CAT) | 
 | - (BOOL) allowsDeleting { return 1; } | 
 | @end |