forked from OSchip/llvm-project
Objective-C [qoi]. When reporting that a property is not
auto synthesized because it is synthesized in its super class. locate property declaration in super class which will default synthesize the property. rdar://18488727 llvm-svn: 219535
This commit is contained in:
parent
8a584bb3d7
commit
c985a7f6df
|
@ -1584,6 +1584,7 @@ void Sema::DefaultSynthesizeProperties(Scope *S, ObjCImplDecl* IMPDecl,
|
|||
else {
|
||||
Diag(Prop->getLocation(), diag::warn_autosynthesis_property_in_superclass)
|
||||
<< Prop->getIdentifier();
|
||||
Diag(PropInSuperClass->getLocation(), diag::note_property_declare);
|
||||
Diag(IMPDecl->getLocation(), diag::note_while_in_implementation);
|
||||
}
|
||||
continue;
|
||||
|
|
|
@ -197,7 +197,8 @@ __attribute__((deprecated))
|
|||
@interface TestBase
|
||||
@property (nonatomic, strong) id object __attribute__((deprecated("deprecated"))); // expected-note {{'object' has been explicitly marked deprecated here}} \
|
||||
expected-note {{property 'object' is declared deprecated here}} \
|
||||
expected-note {{'setObject:' has been explicitly marked deprecated here}}
|
||||
expected-note {{'setObject:' has been explicitly marked deprecated here}} \
|
||||
expected-note {{property declared here}}
|
||||
@end
|
||||
|
||||
@interface TestDerived : TestBase
|
||||
|
|
|
@ -127,7 +127,7 @@
|
|||
|
||||
// rdar://17774815
|
||||
@interface ZXParsedResult
|
||||
@property (nonatomic, copy, readonly) NSString *description;
|
||||
@property (nonatomic, copy, readonly) NSString *description; // expected-note {{property declared here}}
|
||||
@end
|
||||
|
||||
@interface ZXCalendarParsedResult : ZXParsedResult
|
||||
|
|
|
@ -44,7 +44,7 @@ __attribute ((objc_requires_property_definitions)) // expected-error {{'objc_req
|
|||
@interface NSObject @end
|
||||
@protocol Foo
|
||||
@property (readonly) char isFoo; // expected-note {{property declared here}}
|
||||
@property (readonly) char isNotFree;
|
||||
@property (readonly) char isNotFree; // expected-note {{property declared here}}
|
||||
@end
|
||||
|
||||
@interface Bar : NSObject <Foo>
|
||||
|
@ -90,9 +90,9 @@ __attribute ((objc_requires_property_definitions)) // expected-error {{'objc_req
|
|||
@end
|
||||
|
||||
@interface B
|
||||
@property (readonly) id prop;
|
||||
@property (readonly) id prop1;
|
||||
@property (readonly) id prop2;
|
||||
@property (readonly) id prop; // expected-note {{property declared here}}
|
||||
@property (readonly) id prop1; // expected-note {{property declared here}}
|
||||
@property (readonly) id prop2; // expected-note {{property declared here}}
|
||||
@end
|
||||
|
||||
@interface B()
|
||||
|
|
|
@ -13,7 +13,7 @@ __attribute__((objc_protocol_requires_explicit_implementation))
|
|||
// be adopted later by a subclass.
|
||||
@interface ClassA <Protocol>
|
||||
- (void) theBestOfTimes;
|
||||
@property (readonly) id theWorstOfTimes;
|
||||
@property (readonly) id theWorstOfTimes; // expected-note {{property declared here}}
|
||||
@end
|
||||
|
||||
// This class subclasses ClassA (which also adopts 'Protocol').
|
||||
|
|
|
@ -30,7 +30,7 @@ void f0() {
|
|||
|
||||
// rdar://13349296
|
||||
__attribute__((objc_root_class)) @interface ClassBase
|
||||
@property (nonatomic, retain) ClassBase * foo;
|
||||
@property (nonatomic, retain) ClassBase * foo; // expected-note {{property declared here}}
|
||||
@end
|
||||
|
||||
@implementation ClassBase
|
||||
|
|
Loading…
Reference in New Issue