// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s

@interface I {
  int Y;
}
@property int X;
@property int Y;
@property int Z;
@end

@implementation I
@dynamic X; // expected-note {{previous declaration is here}}
@dynamic X; // expected-error {{property 'X' is already implemented}}
@synthesize Y; // expected-note {{previous use is here}}
@synthesize Z=Y; // expected-error {{synthesized properties 'Z' and 'Y' both claim instance variable 'Y'}}
@end

// rdar://8703553
@interface IDEPathCell 
{
@private
    id _gradientStyle;
}

@property (readwrite, assign, nonatomic) id gradientStyle;
@end

@implementation IDEPathCell

@synthesize gradientStyle = _gradientStyle;
- (void)setGradientStyle:(id)value { }

+ (id)_componentCellWithRepresentedObject {
    return self.gradientStyle;
}
@end

// rdar://11054153
@interface rdar11054153
@property int P; // expected-error {{type of property 'P' ('int') does not match type of accessor 'P' ('void')}}
- (void)P; // expected-note {{declared here}}

@property int P1; // expected-warning {{type of property 'P1' does not match type of accessor 'P1'}} 
- (double) P1; // expected-note {{declared here}}

@property int P2; // expected-error {{type of property 'P2' ('int') does not match type of accessor 'P2' ('double *')}}
- (double*)P2; // expected-note {{declared here}}

@end
