| Ted Kremenek | 875a402 | 2012-07-25 07:26:32 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -Wno-objc-root-class -verify %s | 
| Fariborz Jahanian | b525b52 | 2012-04-18 19:13:23 +0000 | [diff] [blame] | 2 | // rdar://11273060 | 
|  | 3 |  | 
|  | 4 | @interface I | 
|  | 5 | - (void) setP : (int)arg; | 
|  | 6 | @end | 
|  | 7 |  | 
|  | 8 | @interface J | 
|  | 9 | - (int) P; | 
|  | 10 | @end | 
|  | 11 |  | 
|  | 12 | @interface K @end | 
|  | 13 |  | 
|  | 14 | @interface II @end | 
|  | 15 |  | 
|  | 16 | @implementation II | 
|  | 17 | - (void) Meth : (I*) arg { | 
|  | 18 | arg.P++; // expected-error {{no getter method 'P' for increment of property}} | 
|  | 19 | --arg.P; // expected-error {{no getter method 'P' for decrement of property}} | 
|  | 20 | } | 
|  | 21 | - (void) Meth1 : (J*) arg { | 
|  | 22 | arg.P++; // expected-error {{no setter method 'setP:' for increment of property}} | 
|  | 23 | arg.P--; // expected-error {{no setter method 'setP:' for decrement of property}} | 
|  | 24 | } | 
|  | 25 |  | 
|  | 26 | - (void) Meth2 : (K*) arg { | 
|  | 27 | arg.P++; // expected-error {{property 'P' not found on object of type 'K *'}} | 
|  | 28 | arg.P--; // expected-error {{property 'P' not found on object of type 'K *'}} | 
|  | 29 | } | 
|  | 30 | @end |