#import // Useless forward declaration. This is used for testing. @class FooBar; @protocol FooProtocol; @protocol ForwardProcotol; // Test public global. extern int publicGlobalVariable; // Test weak public global. extern int weakPublicGlobalVariable __attribute__((weak)); // Test public ObjC class @interface Simple : NSObject @end __attribute__((objc_exception)) @interface Base : NSObject @end @interface SubClass : Base @end @protocol BaseProtocol - (void) baseMethod; @end NS_AVAILABLE(10_11, 9_0) @protocol FooProtocol - (void) protocolMethod; @end @protocol BarProtocol - (void) barMethod; @end @interface FooClass @end // Create an empty category conforms to a forward declared protocol. // @interface FooClass (Test) @end