]> granicus.if.org Git - clang/commitdiff
Another test case for properties in protocols.
authorFariborz Jahanian <fjahanian@apple.com>
Fri, 2 May 2008 21:09:40 +0000 (21:09 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Fri, 2 May 2008 21:09:40 +0000 (21:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50589 91177308-0d34-0410-b5e6-96231b3b80d8

test/Sema/objc-property-5.m [new file with mode: 0644]

diff --git a/test/Sema/objc-property-5.m b/test/Sema/objc-property-5.m
new file mode 100644 (file)
index 0000000..c467e63
--- /dev/null
@@ -0,0 +1,31 @@
+// RUN: clang -verify %s
+
+@protocol P1 @end
+@protocol P2 @end
+@protocol P3 @end
+
+@interface NSData @end
+
+@interface MutableNSData : NSData @end
+
+@interface Base : NSData <P1>
+@property(readonly) id ref;
+@property(readonly) Base *p_base;
+@property(readonly) NSData *nsdata;
+@property(readonly) NSData * m_nsdata;
+@end
+
+@interface Data : Base <P1, P2>
+@property(readonly) NSData *ref;       // expected-warning {{property type 'NSData *' does not match property type inherited from 'Base'}}
+@property(readonly) Data *p_base;      // expected-warning {{property type 'Data *' does not match property type inherited from 'Base'}}
+@property(readonly) MutableNSData * m_nsdata;  // expected-warning {{property type 'MutableNSData *' does not match property type inherited from 'Base'}}
+@end
+
+@interface  MutedData: Data
+@property(readonly) id p_base; // expected-warning {{property type 'id' does not match property type inherited from 'Data'}}
+@end
+
+@interface ConstData : Data <P1, P2, P3>
+@property(readonly) ConstData *p_base; // expected-warning {{property type 'ConstData *' does not match property type inherited from 'Data'}}
+@end
+