57 lines
1.0 KiB
Mathematica
57 lines
1.0 KiB
Mathematica
|
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
||
|
// expected-no-diagnostics
|
||
|
|
||
|
@interface Test {}
|
||
|
+ (Test*)one;
|
||
|
- (int)two;
|
||
|
@end
|
||
|
|
||
|
int main ()
|
||
|
{
|
||
|
return Test.one.two;
|
||
|
}
|
||
|
|
||
|
// rdar://16650575
|
||
|
__attribute__((objc_root_class))
|
||
|
@interface RootClass {
|
||
|
Class isa;
|
||
|
}
|
||
|
|
||
|
@property int property;
|
||
|
-(int)method;
|
||
|
- (void) setMethod : (int)arg;
|
||
|
+(int)classMethod;
|
||
|
@end
|
||
|
|
||
|
@interface Subclass : RootClass @end
|
||
|
void Test1() {
|
||
|
// now okay
|
||
|
(void)RootClass.property;
|
||
|
(void)Subclass.property;
|
||
|
(void)RootClass.method;
|
||
|
(void)Subclass.method;
|
||
|
|
||
|
RootClass.property = 1;
|
||
|
Subclass.property = 2;
|
||
|
RootClass.method = 3;
|
||
|
Subclass.method = 4;
|
||
|
|
||
|
// okay
|
||
|
(void)RootClass.classMethod;
|
||
|
(void)Subclass.classMethod;
|
||
|
|
||
|
// also okay
|
||
|
(void)[RootClass property];
|
||
|
(void)[Subclass property];
|
||
|
[RootClass method];
|
||
|
[Subclass method];
|
||
|
[RootClass classMethod];
|
||
|
[Subclass classMethod];
|
||
|
|
||
|
// also okay
|
||
|
[RootClass setProperty : 1];
|
||
|
[Subclass setProperty : 2];
|
||
|
[RootClass setMethod : 3];
|
||
|
[Subclass setMethod : 4];
|
||
|
}
|