Stephen Hines | 651f13c | 2014-04-23 16:59:28 -0700 | [diff] [blame^] | 1 | // RUN: %clang_cc1 -Wselector-type-mismatch -verify %s |
Steve Naroff | 84c4310 | 2009-02-11 20:43:13 +0000 | [diff] [blame] | 2 | |
Fariborz Jahanian | 835ed7f | 2009-08-22 21:13:55 +0000 | [diff] [blame] | 3 | @interface I |
Stephen Hines | 651f13c | 2014-04-23 16:59:28 -0700 | [diff] [blame^] | 4 | - (id) compare: (char) arg1; // expected-note {{method 'compare:' declared here}} |
Fariborz Jahanian | 8b78913 | 2011-02-04 23:19:27 +0000 | [diff] [blame] | 5 | - length; |
Fariborz Jahanian | 835ed7f | 2009-08-22 21:13:55 +0000 | [diff] [blame] | 6 | @end |
| 7 | |
Fariborz Jahanian | 1e99a77 | 2011-02-04 23:30:23 +0000 | [diff] [blame] | 8 | @interface J |
Stephen Hines | 651f13c | 2014-04-23 16:59:28 -0700 | [diff] [blame^] | 9 | - (id) compare: (id) arg1; // expected-note {{method 'compare:' declared here}} |
Fariborz Jahanian | 1e99a77 | 2011-02-04 23:30:23 +0000 | [diff] [blame] | 10 | @end |
| 11 | |
Fariborz Jahanian | 8b78913 | 2011-02-04 23:19:27 +0000 | [diff] [blame] | 12 | SEL func() |
Fariborz Jahanian | 835ed7f | 2009-08-22 21:13:55 +0000 | [diff] [blame] | 13 | { |
Stephen Hines | 651f13c | 2014-04-23 16:59:28 -0700 | [diff] [blame^] | 14 | return @selector(compare:); // expected-warning {{several methods with selector 'compare:' of mismatched types are found for the @selector expression}} |
Fariborz Jahanian | 1e99a77 | 2011-02-04 23:30:23 +0000 | [diff] [blame] | 15 | } |
| 16 | |
| 17 | int main() { |
| 18 | SEL s = @selector(retain); |
| 19 | SEL s1 = @selector(meth1:); |
| 20 | SEL s2 = @selector(retainArgument::); |
| 21 | SEL s3 = @selector(retainArgument:::::); |
| 22 | SEL s4 = @selector(retainArgument:with:); |
| 23 | SEL s5 = @selector(meth1:with:with:); |
| 24 | SEL s6 = @selector(getEnum:enum:bool:); |
| 25 | SEL s7 = @selector(char:float:double:unsigned:short:long:); |
| 26 | |
| 27 | SEL s9 = @selector(:enum:bool:); |
Fariborz Jahanian | b62f681 | 2007-10-16 20:40:23 +0000 | [diff] [blame] | 28 | } |
Stephen Hines | 651f13c | 2014-04-23 16:59:28 -0700 | [diff] [blame^] | 29 | |
| 30 | // rdar://15794055 |
| 31 | @interface NSObject @end |
| 32 | |
| 33 | @class NSNumber; |
| 34 | |
| 35 | @interface XBRecipe : NSObject |
| 36 | @property (nonatomic, assign) float finalVolume; // expected-note {{method 'setFinalVolume:' declared here}} |
| 37 | @end |
| 38 | |
| 39 | @interface XBDocument : NSObject |
| 40 | @end |
| 41 | |
| 42 | @interface XBDocument () |
| 43 | - (void)setFinalVolume:(NSNumber *)finalVolumeNumber; // expected-note {{method 'setFinalVolume:' declared here}} |
| 44 | @end |
| 45 | |
| 46 | @implementation XBDocument |
| 47 | - (void)setFinalVolume:(NSNumber *)finalVolumeNumber |
| 48 | { |
| 49 | (void)@selector(setFinalVolume:); // expected-warning {{several methods with selector 'setFinalVolume:' of mismatched types are found for the @selector expression}} |
| 50 | } |
| 51 | @end |