xref: /aosp_15_r20/external/clang/test/SemaObjC/method-lookup.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
2*67e74705SXin Litypedef signed char BOOL;
3*67e74705SXin Litypedef int NSInteger;
4*67e74705SXin Li
5*67e74705SXin Li@protocol NSObject
6*67e74705SXin Li- (BOOL)isEqual:(id)object;
7*67e74705SXin Li- (BOOL)respondsToSelector:(SEL)s;
8*67e74705SXin Li@end
9*67e74705SXin Li
10*67e74705SXin Li@interface NSObject <NSObject> {}
11*67e74705SXin Li@end
12*67e74705SXin Li
13*67e74705SXin Li@class NSString, NSData, NSMutableData, NSMutableDictionary, NSMutableArray;
14*67e74705SXin Li
15*67e74705SXin Li@protocol PBXCompletionItem
16*67e74705SXin Li- (NSString *) name;
17*67e74705SXin Li- (NSInteger)priority;
18*67e74705SXin Li- setPriority:(NSInteger)p;
19*67e74705SXin Li@end
20*67e74705SXin Li
21*67e74705SXin Li@implementation PBXCodeAssistant // expected-warning{{cannot find interface declaration for 'PBXCodeAssistant'}}
22*67e74705SXin Listatic NSMutableArray * recentCompletions = ((void *)0);
23*67e74705SXin Li+ (float) factorForRecentCompletion:(NSString *) completion
24*67e74705SXin Li{
25*67e74705SXin Li    for (NSObject<PBXCompletionItem> * item in [self completionItems]) // expected-warning{{method '+completionItems' not found (return type defaults to 'id')}}
26*67e74705SXin Li    {
27*67e74705SXin Li        if ([item respondsToSelector:@selector(setPriority:)])
28*67e74705SXin Li        {
29*67e74705SXin Li            [(id)item setPriority:[item priority] / [PBXCodeAssistant factorForRecentCompletion:[item name]]];
30*67e74705SXin Li        }
31*67e74705SXin Li    }
32*67e74705SXin Li    return 0;
33*67e74705SXin Li}
34*67e74705SXin Li@end
35*67e74705SXin Li
36