| // 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 |