Lines Matching refs:P0
47 @protocol P0 protocol
59 @interface A <P0>
74 void f0(id<P0> x) {
78 void f1(int cond, id<P0> x, id<P0> y) {
82 void f2(int cond, id<P0> x, A *y) {
86 void f3(int cond, id<P0> x, B *y) {
94 void f5(int cond, id<P0> x, C *y) {
95 …(cond ? x : y).intProp = 1; // expected-warning {{incompatible operand types ('id<P0>' and 'C *')}…
102 id f7(int a, id<P0> x, A* p) {
106 int f8(int a, A<P0> *x, A *y) {
110 void f9(int a, A<P0> *x, A<P1> *y) {
111 id l0 = (a ? x : y ); // Ok. y is of A<P1> object type and A is qualified by P0.
112 A<P0> *l1 = (a ? x : y ); // Ok. y is of A<P1> object type and A is qualified by P0.
113 …-warning {{incompatible pointer types initializing 'A<P1> *' with an expression of type 'A<P0> *'}}
114 …(void)[ (a ? x : y ) intProp ]; // Ok. Common type is A<P0> * and P0's property intProp is accesse…
117 void f10(int a, id<P0> x, id y) {
121 void f11(int a, id<P0> x, id<P1> y) {
122 …[ (a ? x : y ) intProp ]; // expected-warning {{incompatible operand types ('id<P0>' and 'id<P1>')…
125 void f12(int a, A<P0> *x, A<P1> *y) {
126 …-warning {{incompatible pointer types initializing 'A<P1> *' with an expression of type 'A<P0> *'}}
129 void f13(int a, B<P3, P0> *x, E<P0, P4> *y) {