| // RUN: clang -cc1 -fsyntax-only -verify %s |
| |
| @interface NSObject {} |
| |
| @end |
| |
| @interface MyClass : NSObject {} |
| |
| @end |
| |
| @interface MyClass (MyCategorie) |
| |
| @end |
| |
| @interface MySubClass : MyClass {} |
| |
| @end |
| |
| @interface MySubSubClass : MySubClass {} |
| |
| @end |
| |
| @implementation NSObject (NSObjectCategory) |
| - (void)rootMethod {} |
| @end |
| |
| @implementation MyClass |
| |
| + (void)myClassMethod { } |
| - (void)myMethod { } |
| |
| @end |
| |
| @implementation MyClass (MyCategorie) |
| + (void)myClassCategoryMethod { } |
| - (void)categoryMethod {} |
| @end |
| |
| @implementation MySubClass |
| |
| - (void)mySubMethod {} |
| |
| - (void)myTest { |
| [self mySubMethod]; |
| // should lookup method in superclass implementation if available |
| [self myMethod]; |
| [super myMethod]; |
| |
| [self categoryMethod]; |
| [super categoryMethod]; |
| |
| // instance method of root class |
| [MyClass rootMethod]; |
| |
| [MyClass myClassMethod]; |
| [MySubClass myClassMethod]; |
| |
| [MyClass myClassCategoryMethod]; |
| [MySubClass myClassCategoryMethod]; |
| } |
| |
| @end |