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