35 lines
		
	
	
		
			814 B
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			814 B
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify %s
 | |
| 
 | |
| // PR3234
 | |
| 
 | |
| @protocol NSCopying @end
 | |
| @interface NSObject @end
 | |
| 
 | |
| void f1(NSObject *o)
 | |
| {
 | |
|   o.foo; // expected-error{{property 'foo' not found on object of type 'NSObject *'}}
 | |
| }
 | |
| 
 | |
| void f2(id<NSCopying> o)
 | |
| {
 | |
|   o.foo; // expected-error{{property 'foo' not found on object of type 'id<NSCopying>'}}
 | |
| }
 | |
| 
 | |
| void f3(id o)
 | |
| {
 | |
|   o.foo; // expected-error{{property 'foo' not found on object of type 'id'}}
 | |
| }
 | |
| 
 | |
| // rdar://8851803
 | |
| @class SomeOtherClass; // expected-note {{forward declaration of class here}}
 | |
| 
 | |
| @interface MyClass {
 | |
|     SomeOtherClass *someOtherObject;
 | |
| }
 | |
| @end
 | |
| 
 | |
| void foo(MyClass *myObject) {
 | |
| 	myObject.someOtherObject.someProperty = 0; // expected-error {{property 'someOtherObject' refers to an incomplete Objective-C class 'SomeOtherClass' (with no @interface available)}}
 | |
| }
 | |
| 
 | 
