[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang / test / ARCMT / objcmt-protocol-conformance.m
blobf4c8f5112a62dae08fe55d1c3b0413980bdd4591
1 // RUN: rm -rf %t
2 // RUN: %clang_cc1 -objcmt-migrate-protocol-conformance -mt-migrate-directory %t %s -x objective-c -fobjc-runtime-has-weak -fobjc-arc -triple x86_64-apple-darwin11
3 // RUN: c-arcmt-test -mt-migrate-directory %t | arcmt-test -verify-transformed-files %s.result
4 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c -fobjc-runtime-has-weak -fobjc-arc %s.result
6 @interface NSObject @end
8 @protocol P
9 - (id) Meth1: (double) arg;
10 @end
12 @interface Test1  // Test for no super class and no protocol list
13 @end
15 @implementation Test1
16 - (id) Meth1: (double) arg { return 0; }
17 @end
19 @protocol P1 @end
20 @protocol P2 @end
22 @interface Test2 <P1, P2>  // Test for no super class and with protocol list
24   id IVAR1;
25   id IVAR2;
27 @end
29 @implementation Test2
30 - (id) Meth1: (double) arg { return 0; }
31 @end
33 @interface Test3 : NSObject  { // Test for Super class and no  protocol list
34   id IV1;
36 @end
38 @implementation Test3
39 - (id) Meth1: (double) arg { return 0; }
40 @end
42 @interface Test4 : NSObject <P1, P2> // Test for Super class and protocol list
43 @end
45 @implementation Test4
46 - (id) Meth1: (double) arg { return 0; }
47 @end
49 // Test5 - conforms to P3 because it implement's P3's property.
50 @protocol P3
51 @property (copy) id Prop;
52 @end
54 @protocol P4
55 @property (copy) id Prop;
56 @end
58 @interface Test5 : NSObject<P3>
59 @end
61 @implementation Test5
62 @synthesize Prop=_XXX;
63 @end
65 @protocol P5 <P3, P4>
66 @property (copy) id Prop;
67 @end
69 @protocol P6 <P3, P4, P5>
70 @property (copy) id Prop;
71 @end
73 @interface Test6 : NSObject // Test for minimal listing of conforming protocols
74 @property (copy) id Prop;
75 @end
77 @implementation Test6 
78 @end
80 @class UIDynamicAnimator, UIWindow;
81 @interface UIResponder : NSObject
82 @end
84 @protocol EmptyProtocol
85 @end
87 @protocol OptionalMethodsOnly
88 @optional
89 - (void)dynamicAnimatorWillResume:(UIDynamicAnimator*)animator;
90 - (void)dynamicAnimatorDidPause:(UIDynamicAnimator*)animator;
91 @end
93 @protocol OptionalPropertiesOnly
94 @optional
95 @property (strong, nonatomic) id OptionalProperty;
96 @end
98 @protocol OptionalEvrything
99 @optional
100 - (void)dynamicAnimatorWillResume:(UIDynamicAnimator*)animator;
101 @property (strong, nonatomic) id OptionalProperty;
102 - (void)dynamicAnimatorDidPause:(UIDynamicAnimator*)animator;
103 @end
105 @protocol UIApplicationDelegate
106 @end
108 @interface Test7 : UIResponder <UIApplicationDelegate>
109 @property (strong, nonatomic) UIWindow *window;
110 @end
112 @implementation Test7
113 @end
115 // rdar://15515206
116 @interface BTLEBrowser
117 @end
119 @protocol CBCentralManagerDelegate; 
121 @protocol CBCentralManagerDelegate 
122 - (id) Meth1: (double) arg;
123 @end
125 @interface BTLEBrowser() <CBCentralManagerDelegate> 
126 @end
128 @implementation BTLEBrowser
129 - (id) Meth15515206: (double) arg { return 0; }
130 @end