1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 3 // PR3234 4 5 @protocol NSCopying @end 6 @interface NSObject @end 7 8 void f1(NSObject *o) 9 { 10 o.foo; // expected-error{{property 'foo' not found on object of type 'NSObject *'}} 11 } 12 13 void f2(id<NSCopying> o) 14 { 15 o.foo; // expected-error{{property 'foo' not found on object of type 'id<NSCopying>'}} 16 } 17 18 void f3(id o) 19 { 20 o.foo; // expected-error{{property 'foo' not found on object of type 'id'}} 21 } 22 23 // rdar://8851803 24 @class SomeOtherClass; // expected-note {{forward class is declared here}} 25 26 @interface MyClass { 27 SomeOtherClass *someOtherObject; 28 } 29 @end 30 31 void foo(MyClass *myObject) { 32 myObject.someOtherObject.someProperty = 0; // expected-error {{property 'someOtherObject' refers to an incomplete Objective-C class 'SomeOtherClass' (with no @interface available)}} 33 } 34 35