| // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s | 
 |  | 
 | typedef struct objc_class *Class; | 
 | struct __objcFastEnumerationState;  | 
 | typedef struct objc_object { | 
 |  Class isa; | 
 | } *id; | 
 |      | 
 | @protocol P @end | 
 |  | 
 | @interface MyList | 
 | @end | 
 |      | 
 | @implementation MyList | 
 | - (unsigned int)countByEnumeratingWithState:  (struct __objcFastEnumerationState *)state objects:  (id *)items count:(unsigned int)stackcount | 
 | { | 
 |         return 0; | 
 | } | 
 | @end | 
 |  | 
 | @interface MyList (BasicTest) | 
 | - (void)compilerTestAgainst; | 
 | @end | 
 |  | 
 | @implementation MyList (BasicTest) | 
 | - (void)compilerTestAgainst { | 
 |     static i;// expected-warning {{type specifier missing, defaults to 'int'}} | 
 |         for (id el, elem in self)  // expected-error {{only one element declaration is allowed}} | 
 |            ++i; | 
 |         for (id el in self)  | 
 |            ++i; | 
 | 	MyList<P> ***p; | 
 |         for (p in self)  // expected-error {{selector element type 'MyList<P> ***' is not a valid object}} | 
 |            ++i; | 
 |  | 
 | } | 
 | @end | 
 |  |