f4a2713ac8
Change-Id: Ia40e9ffdf29b5dab2f122f673ff6802a58bc690f
112 lines
2.3 KiB
Objective-C
112 lines
2.3 KiB
Objective-C
// RUN: %clang_cc1 -fsyntax-only -Wselector -verify -Wno-objc-root-class %s
|
|
// rdar://8851684
|
|
|
|
@interface Foo
|
|
- (void) foo;
|
|
- (void) bar;
|
|
@end
|
|
|
|
@implementation Foo
|
|
- (void) bar
|
|
{
|
|
}
|
|
|
|
- (void) foo
|
|
{
|
|
SEL a,b,c;
|
|
a = @selector(b1ar); // expected-warning {{creating selector for nonexistent method 'b1ar'}}
|
|
b = @selector(bar);
|
|
}
|
|
@end
|
|
|
|
@interface I
|
|
- length;
|
|
@end
|
|
|
|
SEL func()
|
|
{
|
|
return @selector(length); // expected-warning {{creating selector for nonexistent method 'length'}}
|
|
}
|
|
|
|
// rdar://9545564
|
|
@class MSPauseManager;
|
|
|
|
@protocol MSPauseManagerDelegate
|
|
@optional
|
|
- (void)pauseManagerDidPause:(MSPauseManager *)manager;
|
|
- (int)respondsToSelector:(SEL)aSelector;
|
|
@end
|
|
|
|
@interface MSPauseManager
|
|
{
|
|
id<MSPauseManagerDelegate> _delegate;
|
|
}
|
|
@end
|
|
|
|
|
|
@implementation MSPauseManager
|
|
- (id) Meth {
|
|
if ([_delegate respondsToSelector:@selector(pauseManagerDidPause:)])
|
|
return 0;
|
|
return 0;
|
|
}
|
|
@end
|
|
|
|
// rdar://12938616
|
|
@class NSXPCConnection;
|
|
|
|
@interface NSObject
|
|
@end
|
|
|
|
@interface INTF : NSObject
|
|
{
|
|
NSXPCConnection *cnx; // Comes in as a parameter.
|
|
}
|
|
- (void) Meth;
|
|
@end
|
|
|
|
extern SEL MySelector(SEL s);
|
|
|
|
@implementation INTF
|
|
- (void) Meth {
|
|
if( [cnx respondsToSelector:MySelector(@selector( _setQueue: ))] ) // expected-warning {{creating selector for nonexistent method '_setQueue:'}}
|
|
{
|
|
}
|
|
|
|
if( [cnx respondsToSelector:@selector( _setQueueXX: )] ) // No warning here.
|
|
{
|
|
}
|
|
if( [cnx respondsToSelector:(@selector( _setQueueXX: ))] ) // No warning here.
|
|
{
|
|
}
|
|
}
|
|
@end
|
|
|
|
// rdar://14007194
|
|
@interface UxTechTest : NSObject
|
|
- (int) invalidate : (id)Arg; // expected-warning {{multiple selectors named 'invalidate:' found}}
|
|
+ (int) C_invalidate : (int)arg; // expected-warning {{multiple selectors named 'C_invalidate:' found}}
|
|
@end
|
|
|
|
@interface UxTechTest(CAT)
|
|
- (char) invalidate : (int)arg; // expected-note {{also found}}
|
|
+ (int) C_invalidate : (char)arg; // expected-note {{also found}}
|
|
@end
|
|
|
|
@interface NSPort : NSObject
|
|
- (double) invalidate : (void*)Arg1; // expected-note {{also found}}
|
|
+ (int) C_invalidate : (id*)arg; // expected-note {{also found}}
|
|
@end
|
|
|
|
|
|
@interface USEText : NSPort
|
|
- (int) invalidate : (int)arg; // expected-note {{also found}}
|
|
@end
|
|
|
|
@implementation USEText
|
|
- (int) invalidate :(int) arg { return 0; }
|
|
@end
|
|
|
|
@interface USETextSub : USEText
|
|
- (int) invalidate : (id)arg;
|
|
@end
|