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