summaryrefslogtreecommitdiffstats
path: root/test/SemaObjC/typedef-class.m
blob: bd68397fd96950e88b1b308445a3d3037693714c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// RUN: %clang_cc1 -fsyntax-only -verify %s
typedef signed char BOOL;
typedef unsigned int NSUInteger;
typedef struct _NSZone NSZone;

@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;

@protocol NSObject - (BOOL) isEqual:(id) object; - (id)init; @end
@protocol NSCopying - (id) copyWithZone:(NSZone *) zone; @end
@protocol NSCoding - (void) encodeWithCoder:(NSCoder *) aCoder; @end

@interface NSObject < NSObject > {}
+(id) alloc;
@end

typedef float CGFloat;

@interface NSTask:NSObject
- (id) init;
@end

typedef NSUInteger NSControlSize;
typedef struct __CFlags {} _CFlags;

@interface NSCell:NSObject < NSCopying, NSCoding > {}
@end

@interface NSActionCell:NSCell {} @end

@class NSAttributedString, NSFont, NSImage, NSSound;

typedef struct _XCElementInset {} XCElementInset;

@protocol XCElementP < NSObject >
-(BOOL) vertical;
@end

@protocol XCElementDisplayDelegateP;
@protocol XCElementDisplayDelegateP < NSObject >
-(void) configureForControlSize:(NSControlSize)size font:(NSFont *)font addDefaultSpace:(XCElementInset) additionalSpace;
@end

@protocol XCElementSpacerP < XCElementP >
@end

typedef NSObject < XCElementSpacerP > XCElementSpacer;

@protocol XCElementTogglerP < XCElementP > -(void) setDisplayed:(BOOL) displayed;
@end

typedef NSObject < XCElementTogglerP > XCElementToggler; // expected-note {{previous definition is here}}

@interface XCElementRootFace:NSObject {} @end

@interface XCElementFace:XCElementRootFace {} @end

@class XCElementToggler;  // expected-warning {{redefinition of forward class 'XCElementToggler' of a typedef name of an object type is ignored}}

@interface XCRASlice:XCElementFace {} @end

@class XCElementSpacings;

@interface XCElementDisplay:NSObject < XCElementDisplayDelegateP > {} @end
@interface XCElementDisplayRect:XCElementDisplay {} @end

typedef XCElementDisplayRect XCElementGraphicsRect;

@interface XCElementDisplayFillerImage:XCElementDisplay {} @end

@implementation XCRASlice
- (void) addSliceWithLabel:(NSString *)label statusKey:(NSString *)statusKey disclosed:(BOOL)disclosed
{
  static XCElementGraphicsRect *_sGraphicsDelegate = ((void *) 0);
  if (!_sGraphicsDelegate) {
    _sGraphicsDelegate =[[XCElementGraphicsRect alloc] init]; 
  }
}
@end