| // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s |
| @property(readonly) id object; |
| @property(readwrite, assign) id object1; // expected-note {{property declared here}} |
| @property (readonly) int indentLevel; |
| @property(readwrite, copy) id object; // Ok. declaring memory model in class extension - primary has none. |
| @property(readonly) id object1; // expected-error {{illegal redeclaration of property in class extension 'ReadOnly' (attribute must be 'readwrite', while its primary must be 'readonly')}} |
| @property (readwrite, assign) int indentLevel; // OK. assign the default in any case. |
| @property (copy) id fee; // expected-note {{property declared here}} |
| @property (copy) id foo; // expected-note {{property declared here}} |
| @property (copy) id foo; // expected-error {{illegal redeclaration of property in class extension 'Bar' (attribute must be 'readwrite', while its primary must be 'readonly')}} |
| @property (copy) id fee; // expected-error {{illegal redeclaration of property in class extension 'Bar' (attribute must be 'readwrite', while its primary must be 'readonly')}} |
| @interface MyOtherClass() // expected-error {{cannot find interface declaration for 'MyOtherClass'}} |
| @implementation MyOtherClass // expected-warning {{cannot find interface declaration for 'MyOtherClass'}} |