Commits

Brian Gesiak committed 1e7cb14ff86
Forward-declare World, which is now internal One of Quick's greatest design flaws is due to the combination of four factors: 1. Quick has a predilection for Swift--one of it's goals was to be written entirely in Swift if possible. 2. Quick supports tests written in both Swift and Objective-C. 3. XCTest relies upon subclassing for test discovery. 4. Objective-C classes cannot subclass Swift base classes. As such, Quick is unable to define QuickSpec, a base XCTestCase subclass, in Swift, and then have both Objective-C and Swift tests subclass QuickSpec. Instead, in order to be used from both Swift and Objective-C, QuickSpec must be implemented in Objective-C. This forces internal Quick code, such as Quick.World, to be marked as public. People using Quick to write tests were thus able to call Quick.World directly, even though that class is meant to be an implementation detail. In order to get around the need for World to be public, define macros which can be used to make a forward declaration of World within an Objective-C file.