150
|
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 declaration of class 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
|