| // RUN: %clang_cc1 -fsyntax-only -verify %s | 
 | // expected-no-diagnostics | 
 |  | 
 | @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 |