1 | // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s |
2 | |
3 | typedef struct objc_class *Class; |
4 | struct __objcFastEnumerationState; |
5 | typedef struct objc_object { |
6 | Class isa; |
7 | } *id; |
8 | |
9 | @protocol P @end |
10 | |
11 | @interface MyList |
12 | @end |
13 | |
14 | @implementation MyList |
15 | - (unsigned int)countByEnumeratingWithState: (struct __objcFastEnumerationState *)state objects: (id *)items count:(unsigned int)stackcount |
16 | { |
17 | return 0; |
18 | } |
19 | @end |
20 | |
21 | @interface MyList (BasicTest) |
22 | - (void)compilerTestAgainst; |
23 | @end |
24 | |
25 | @implementation MyList (BasicTest) |
26 | - (void)compilerTestAgainst { |
27 | static i;// expected-warning {{type specifier missing, defaults to 'int'}} |
28 | for (id el, elem in self) // expected-error {{only one element declaration is allowed}} |
29 | ++i; |
30 | for (id el in self) |
31 | ++i; |
32 | MyList<P> ***p; |
33 | for (p in self) // expected-error {{selector element type 'MyList<P> ***' is not a valid object}} |
34 | ++i; |
35 | |
36 | } |
37 | @end |
38 | |
39 | |