1// RUN: %clang_cc1 -fsyntax-only -verify %s
2// expected-no-diagnostics
3
4@interface NSObject {}
5
6@end
7
8@interface MyClass : NSObject {}
9
10@end
11
12@interface MyClass (MyCategorie)
13
14@end
15
16@interface MySubClass : MyClass {}
17
18@end
19
20@interface MySubSubClass : MySubClass {}
21
22@end
23
24@implementation NSObject (NSObjectCategory)
25- (void)rootMethod {}
26@end
27
28@implementation MyClass
29
30+ (void)myClassMethod { }
31- (void)myMethod { }
32
33@end
34
35@implementation MyClass (MyCategorie)
36+ (void)myClassCategoryMethod { }
37- (void)categoryMethod {}
38@end
39
40@implementation MySubClass
41
42- (void)mySubMethod {}
43
44- (void)myTest {
45  [self mySubMethod];
46  // should lookup method in superclass implementation if available
47  [self myMethod];
48  [super myMethod];
49
50  [self categoryMethod];
51  [super categoryMethod];
52
53  // instance method of root class
54  [MyClass rootMethod];
55
56  [MyClass myClassMethod];
57  [MySubClass myClassMethod];
58
59  [MyClass myClassCategoryMethod];
60  [MySubClass myClassCategoryMethod];
61}
62
63@end
64