mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
The code goes into its own sub-tree under 'tools' but tests go under 'test', so that running 'check-swift' will also run all the SourceKit tests. SourceKit is disabled on non-darwin platforms.
79 lines
2.5 KiB
Objective-C
79 lines
2.5 KiB
Objective-C
@import Foundation;
|
|
|
|
#pragma clang assume_nonnull begin
|
|
|
|
// stdbool.h uses #define, so this test does as well.
|
|
#ifndef bool
|
|
# define bool _Bool
|
|
#endif
|
|
|
|
bool testCBool(bool);
|
|
BOOL testObjCBool(BOOL);
|
|
Boolean testDarwinBoolean(Boolean);
|
|
|
|
typedef bool CBoolTypedef;
|
|
typedef BOOL ObjCBoolTypedef;
|
|
typedef Boolean DarwinBooleanTypedef;
|
|
|
|
CBoolTypedef testCBoolTypedef(CBoolTypedef);
|
|
ObjCBoolTypedef testObjCBoolTypedef(ObjCBoolTypedef);
|
|
DarwinBooleanTypedef testDarwinBooleanTypedef(DarwinBooleanTypedef);
|
|
|
|
const bool *testCBoolPointer(bool *);
|
|
const BOOL *testObjCBoolPointer(BOOL *);
|
|
const Boolean *testDarwinBooleanPointer(Boolean *);
|
|
|
|
typedef bool (*CBoolFn)(bool);
|
|
typedef BOOL (*ObjCBoolFn)(BOOL);
|
|
typedef Boolean (*DarwinBooleanFn)(Boolean);
|
|
|
|
typedef bool (^CBoolBlock)(bool);
|
|
typedef BOOL (^ObjCBoolBlock)(BOOL);
|
|
typedef Boolean (^DarwinBooleanBlock)(Boolean);
|
|
|
|
__typeof(bool (^)(bool)) testCBoolFnToBlock(bool (*)(bool));
|
|
__typeof(BOOL (^)(BOOL)) testObjCBoolFnToBlock(BOOL (*)(BOOL));
|
|
__typeof(Boolean (^)(Boolean)) testDarwinBooleanFnToBlock(Boolean (*)(Boolean));
|
|
|
|
CBoolBlock testCBoolFnToBlockTypedef(CBoolFn);
|
|
ObjCBoolBlock testObjCBoolFnToBlockTypedef(ObjCBoolFn);
|
|
DarwinBooleanBlock testDarwinBooleanFnToBlockTypedef(DarwinBooleanFn);
|
|
|
|
typedef __typeof(testCBoolFnToBlockTypedef) CBoolFnToBlockType;
|
|
typedef __typeof(testObjCBoolFnToBlockTypedef) ObjCCBoolFnToBlockType;
|
|
typedef __typeof(testDarwinBooleanFnToBlockTypedef) DarwinBooleanFnToBlockType;
|
|
|
|
extern CBoolFn globalCBoolFn;
|
|
extern ObjCBoolFn globalObjCBoolFn;
|
|
extern DarwinBooleanFn globalDarwinBooleanFn;
|
|
|
|
extern CBoolBlock globalCBoolBlock;
|
|
extern ObjCBoolBlock globalObjCBoolBlock;
|
|
extern DarwinBooleanBlock globalDarwinBooleanBlock;
|
|
|
|
@interface Test : NSObject
|
|
@property bool propCBool;
|
|
@property BOOL propObjCBool;
|
|
@property Boolean propDarwinBoolean;
|
|
|
|
- (bool)testCBool:(bool)b;
|
|
- (BOOL)testObjCBool:(BOOL)b;
|
|
- (Boolean)testDarwinBoolean:(Boolean)b;
|
|
|
|
@property bool (^propCBoolBlock)(bool);
|
|
@property BOOL (^propObjCBoolBlock)(BOOL);
|
|
@property Boolean (^propDarwinBooleanBlock)(Boolean);
|
|
|
|
- (bool (^)(bool))testCBoolFnToBlock:(bool (*)(bool))fp;
|
|
- (BOOL (^)(BOOL))testObjCBoolFnToBlock:(BOOL (*)(BOOL))fp;
|
|
- (Boolean (^)(Boolean))testDarwinBooleanFnToBlock:(Boolean (*)(Boolean))fp;
|
|
|
|
- (void)produceCBoolBlockTypedef:(CBoolBlock __nullable * __nonnull)outBlock;
|
|
- (void)produceObjCBoolBlockTypedef:(ObjCBoolBlock __nullable * __nonnull)outBlock;
|
|
- (void)produceDarwinBooleanBlockTypedef:(DarwinBooleanBlock __nullable * __nonnull)outBlock;
|
|
|
|
- (instancetype)init;
|
|
@end
|
|
|
|
#pragma clang assume_nonnull end
|