1// RUN: %clang_cc1 -fsyntax-only -verify %s
2// expected-no-diagnostics
3
4@interface Test {}
5+ (Test*)one;
6- (int)two;
7@end
8
9int main ()
10{
11  return Test.one.two;
12}
13
14// rdar://16650575
15__attribute__((objc_root_class))
16@interface RootClass {
17  Class isa;
18}
19
20@property int property;
21-(int)method;
22- (void) setMethod : (int)arg;
23+(int)classMethod;
24@end
25
26@interface Subclass : RootClass @end
27void Test1() {
28    // now okay
29    (void)RootClass.property;
30    (void)Subclass.property;
31    (void)RootClass.method;
32    (void)Subclass.method;
33
34    RootClass.property = 1;
35    Subclass.property = 2;
36    RootClass.method = 3;
37    Subclass.method = 4;
38
39    // okay
40    (void)RootClass.classMethod;
41    (void)Subclass.classMethod;
42
43    // also okay
44    (void)[RootClass property];
45    (void)[Subclass property];
46    [RootClass method];
47    [Subclass method];
48    [RootClass classMethod];
49    [Subclass classMethod];
50
51    // also okay
52    [RootClass setProperty : 1];
53    [Subclass setProperty : 2];
54    [RootClass setMethod : 3];
55    [Subclass setMethod : 4];
56}
57