|  | // RUN: %clang_cc1  -Wselector-type-mismatch -verify %s | 
|  |  | 
|  | @interface I | 
|  | - (id) compare: (char) arg1; // expected-note {{method 'compare:' declared here}} | 
|  | - length; | 
|  | @end | 
|  |  | 
|  | @interface J | 
|  | - (id) compare: (id) arg1; // expected-note {{method 'compare:' declared here}} | 
|  | @end | 
|  |  | 
|  | SEL func() | 
|  | { | 
|  | return @selector(compare:);	// expected-warning {{several methods with selector 'compare:' of mismatched types are found for the @selector expression}} | 
|  | } | 
|  |  | 
|  | // rdar://16458579 | 
|  | void Test16458579() { | 
|  | SEL s = @selector((retain)); | 
|  | SEL s1 = @selector((meth1:)); | 
|  | SEL s2 = @selector((retainArgument::)); | 
|  | SEL s3 = @selector((retainArgument:::::)); | 
|  | SEL s4 = @selector((retainArgument:with:)); | 
|  | SEL s5 = @selector((meth1:with:with:)); | 
|  | SEL s6 = @selector((getEnum:enum:bool:)); | 
|  | SEL s7 = @selector((char:float:double:unsigned:short:long:)); | 
|  | SEL s9 = @selector((:enum:bool:)); | 
|  | } | 
|  | int main() { | 
|  | SEL s = @selector(retain); | 
|  | SEL s1 = @selector(meth1:); | 
|  | SEL s2 = @selector(retainArgument::); | 
|  | SEL s3 = @selector(retainArgument:::::); | 
|  | SEL s4 = @selector(retainArgument:with:); | 
|  | SEL s5 = @selector(meth1:with:with:); | 
|  | SEL s6 = @selector(getEnum:enum:bool:); | 
|  | SEL s7 = @selector(char:float:double:unsigned:short:long:); | 
|  |  | 
|  | SEL s9 = @selector(:enum:bool:); | 
|  | } | 
|  |  | 
|  | // rdar://15794055 | 
|  | @interface NSObject @end | 
|  |  | 
|  | @class NSNumber; | 
|  |  | 
|  | @interface XBRecipe : NSObject | 
|  | @property (nonatomic, assign) float finalVolume; // expected-note {{method 'setFinalVolume:' declared here}} | 
|  | @end | 
|  |  | 
|  | @interface XBDocument : NSObject | 
|  | @end | 
|  |  | 
|  | @interface XBDocument () | 
|  | - (void)setFinalVolume:(NSNumber *)finalVolumeNumber; // expected-note {{method 'setFinalVolume:' declared here}} | 
|  | @end | 
|  |  | 
|  | @implementation XBDocument | 
|  | - (void)setFinalVolume:(NSNumber *)finalVolumeNumber | 
|  | { | 
|  | (void)@selector(setFinalVolume:); // expected-warning {{several methods with selector 'setFinalVolume:' of mismatched types are found for the @selector expression}} | 
|  | } | 
|  | @end |