xref: /llvm-project/clang/test/SemaObjC/property-in-class-extension.m (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1// RUN: %clang_cc1  -fsyntax-only -verify -Wno-objc-root-class %s
2
3@interface Foo @end
4
5@interface Foo ()
6  @property (readonly) int bar;
7@end
8
9void FUNC (void) {
10    Foo *foo;
11    foo.bar = 0; // expected-error {{assignment to readonly property}}
12}
13
14@class NSObject;
15
16@interface rdar8747333  {
17@private
18    NSObject *_bar;
19    NSObject *_baz;
20    NSObject *_bam;
21}
22- (NSObject *)baz;
23@end
24
25@interface rdar8747333 ()
26- (NSObject *)bar;
27@end
28
29@interface rdar8747333 ()
30@property (readwrite, assign) NSObject *bar;
31@property (readwrite, assign) NSObject *baz;
32@property (readwrite, assign) NSObject *bam;
33@property (readwrite, assign) NSObject *warn;
34@end
35
36@interface rdar8747333 ()
37- (NSObject *)bam;
38- (NSObject *)warn;
39- (void)setWarn : (NSObject *)val;
40@end
41
42@implementation rdar8747333
43@synthesize bar = _bar;
44@synthesize baz = _baz;
45@synthesize bam = _bam;
46@dynamic warn;
47@end
48
49