llvm-capstone/clang/test/Parser/objc-forcollection-neg-2.m
Chris Lattner a347834869 make some diagnostics more terse, update testcases.
Fix Sema::ActOnInstanceMessage to correctly do things in terms of canonical 
types, fixing bogus errors like:

NSDistantObject.m:10383:120: error: bad receiver type 'typeof((id<NSMutableCopying>)self)'
    id mess = ({ id __inv__ = ((void *)0); id __mb__ = _NSMessageBuilder((id <NSMutableCopying>)self, &__inv__); (void)[(__typeof__((id <NSMutableCopying>)self))__mb__ mutableCopyWithZone:((void *)0)]; if (!objc_collecting_enabled()) object_dispose(__mb__); __inv__; });

llvm-svn: 46633
2008-02-01 06:57:39 +00:00

39 lines
837 B
Objective-C

// RUN: clang -fsyntax-only -verify %s
typedef struct objc_class *Class;
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;
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 type}}
++i;
}
@end