// RUN: %clang_cc1 -fsyntax-only -verify %s // expected-no-diagnostics @interface Test {} + (Test*)one; - (int)two; @end int main () { return Test.one.two; } // rdar://16650575 __attribute__((objc_root_class)) @interface RootClass { Class isa; } @property int property; -(int)method; - (void) setMethod : (int)arg; +(int)classMethod; @end @interface Subclass : RootClass @end void Test1() { // now okay (void)RootClass.property; (void)Subclass.property; (void)RootClass.method; (void)Subclass.method; RootClass.property = 1; Subclass.property = 2; RootClass.method = 3; Subclass.method = 4; // okay (void)RootClass.classMethod; (void)Subclass.classMethod; // also okay (void)[RootClass property]; (void)[Subclass property]; [RootClass method]; [Subclass method]; [RootClass classMethod]; [Subclass classMethod]; // also okay [RootClass setProperty : 1]; [Subclass setProperty : 2]; [RootClass setMethod : 3]; [Subclass setMethod : 4]; }