|  | // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s | 
|  |  | 
|  | @interface Foo | 
|  | @property (nonatomic, retain) NSString* what; // expected-error {{unknown type name 'NSString'}} \ | 
|  | // expected-error {{property with}} \ | 
|  | // expected-note {{previous definition is here}} | 
|  | @end | 
|  |  | 
|  | @implementation Foo | 
|  | - (void) setWhat: (NSString*) value { // expected-error {{expected a type}} \ | 
|  | // expected-warning {{conflicting parameter types in implementation of}} | 
|  | __what; // expected-error {{use of undeclared identifier}} \ | 
|  | // expected-warning {{expression result unused}} | 
|  | } | 
|  | @synthesize what; // expected-note {{'what' declared here}} | 
|  | @end | 
|  |  | 
|  | @implementation Bar // expected-warning {{cannot find interface declaration for}} | 
|  | - (NSString*) what { // expected-error {{expected a type}} | 
|  | return __what; // expected-error {{use of undeclared identifier}} | 
|  | } | 
|  | @end |