// RUN: %clang_cc1 -fsyntax-only -verify -Wparentheses -Wno-objc-root-class %s
// Don't warn about some common ObjC idioms unless we have -Widiomatic-parentheses on.
// <rdar://problem/7382435>
@interfaceObject{unsigned uid;}- (id)init;- (id)initWithInt:(int)i;- (id)myInit __attribute__((objc_method_family(init)));-(void) iterate:(id) coll;-(id) nextObject;
@property unsigned uid;
@end
@implementation Object
@synthesize uid;-(id) init {if(self=[selfinit]){}returnself;}-(id) initWithInt:(int) i {if(self=[selfinitWithInt: i]){}// rdar://11066598
if(self.uid=100){// expected-warning {{using the result of an assignment as a condition without parentheses}} \
// expected-note {{place parentheses around the assignment to silence this warning}} \
// expected-note {{use '==' to turn this assignment into an equality comparison}}
// ...
}returnself;}-(id) myInit {if(self=[selfmyInit]){}returnself;}-(void) iterate:(id) coll {id cur;while(cur =[coll nextObject]){}}-(id) nextObject {returnself;}
@end