1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | // expected-no-diagnostics |
3 | typedef signed char BOOL; |
4 | @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator; |
5 | |
6 | @protocol NSObject |
7 | - (BOOL) isEqual:(id) object; |
8 | @end |
9 | |
10 | @protocol NSCoding |
11 | - (void) encodeWithCoder:(NSCoder *) aCoder; |
12 | @end |
13 | |
14 | @interface NSObject < NSObject > {} @end |
15 | |
16 | typedef float CGFloat; |
17 | |
18 | @interface NSResponder:NSObject < NSCoding > {} @end |
19 | |
20 | @class XCElementView; |
21 | |
22 | typedef struct _XCElementInset {} XCElementInset; |
23 | |
24 | @protocol XCElementP < NSObject > |
25 | -(id) vertical; |
26 | @end |
27 | |
28 | @protocol XCElementDisplayDelegateP; |
29 | @protocol XCElementTabMarkerP; |
30 | |
31 | typedef NSObject < XCElementTabMarkerP > XCElementTabMarker; |
32 | |
33 | @protocol XCElementTabberP < XCElementP > |
34 | -(void) setMarker:(XCElementTabMarker *) marker; |
35 | @end |
36 | |
37 | typedef NSObject < XCElementTabberP > XCElementTabber; |
38 | |
39 | @protocol XCElementTabMarkerP < NSObject > |
40 | @property(nonatomic) |
41 | BOOL variableSized; |
42 | @end |
43 | |
44 | @protocol XCElementJustifierP < XCElementP > |
45 | -(void) setHJustification:(CGFloat) hJust; |
46 | @end |
47 | |
48 | typedef NSObject < XCElementJustifierP > XCElementJustifier; |
49 | @interface XCElementImp:NSObject < XCElementP > {} |
50 | @end |
51 | |
52 | @class XCElementImp; |
53 | |
54 | @interface XCElementTabberImp:XCElementImp < XCElementTabberP > { |
55 | XCElementTabMarker *_marker; |
56 | } |
57 | @end |
58 | |
59 | @implementation XCElementTabberImp |
60 | - (void) setMarker:(XCElementTabMarker *) marker { |
61 | if (_marker && _marker.variableSized) { |
62 | } |
63 | } |
64 | - (id)vertical { return self; } |
65 | - (BOOL)isEqual:x { return 1; } |
66 | @end |
67 | |