llvm-project/clang/test/SemaObjC/error-missing-getter.m
Kaelyn Takata 22101f9689 Continue parsing an expression list even after an error is encountered.
Otherwise, multiple errors such as having unknown identifiers for two
arguments won't be diagnosed properly (e.g. only the first one would
have a diagnostic message if typo correction fails even though both
would be diagnosed if typo correction suggests a replacement).

llvm-svn: 213003
2014-07-14 22:48:10 +00:00

44 lines
1.4 KiB
Objective-C

// RUN: %clang_cc1 -fsyntax-only -verify %s
// rdar://8155806
@interface Subclass
{
int setterOnly;
}
- (void) setSetterOnly : (int) arg;
@end
int func (int arg, Subclass *x) {
if (x.setterOnly) { // expected-error {{no getter method for read from property}}
x.setterOnly = 1;
}
func(x.setterOnly + 1, x); // expected-error {{no getter method for read from property}}
int i = x.setterOnly + 1; // expected-error {{no getter method for read from property}}
return x.setterOnly + 1; // expected-error {{no getter method for read from property}}
}
// <rdar://problem/12765391>
@interface TestClass
+ (void) setSetterOnly : (int) arg;
@end
int func2 (int arg) {
if (TestClass.setterOnly) { // expected-error {{no getter method for read from property}}
TestClass.setterOnly = 1;
}
func(TestClass.setterOnly + 1, x); // expected-error {{no getter method for read from property}} \
// expected-error {{use of undeclared identifier 'x'}}
int i = TestClass.setterOnly + 1; // expected-error {{no getter method for read from property}}
return TestClass.setterOnly + 1; // expected-error {{no getter method for read from property}}
}
@interface Sub : Subclass
- (int) func3;
@end
@implementation Sub
- (int) func3 {
return super.setterOnly; // expected-error {{no getter method for read from property}}
}
@end