xref: /llvm-project/clang/test/SemaObjCXX/property-invalid-type.mm (revision 69d2fa9ed1c1aba6f473feb03cad257e69a0cf52)
1// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
2
3@interface I
4{
5  A* response; // expected-error {{unknown type name 'A'}}
6}
7@end
8@interface I ()
9@property A* response;  // expected-error {{unknown type name 'A'}}
10@property  int helper;
11@end
12@implementation I
13@synthesize response;
14- (void) foo :(A*) a   // expected-error {{expected a type}}
15{
16  self.response = a; // expected-error{{incompatible pointer types assigning to 'int *' from 'id'}}
17}
18@end
19
20void foo(I *i)
21{
22  i.helper; // expected-warning{{property access result unused - getters should not be used for side effects}}
23}
24
25@interface J
26@property (nonnull) auto a; // expected-error {{'auto' not allowed in interface member}}
27@property auto b; // expected-error {{'auto' not allowed in interface member}}
28@property (nullable) auto c; // expected-error {{'auto' not allowed in interface member}}
29@end
30
31@interface J (Cat)
32@property (nonnull) auto catprop; // expected-error {{'auto' not allowed in interface member}}
33@end
34