57 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
| // 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];
 | |
| }
 |