mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This allows the conversion of the Windows `BOOL` type to be converted to `Bool` implicitly. The implicit bridging allows for a more ergonomic use of the native Windows APIs in Swift. Due to the ambiguity between the Objective C `BOOL` and the Windows `BOOL`, we must manually map the `BOOL` type to the appropriate type. This required lifting the mapping entry for `ObjCBool` from the mapped types XMACRO definition into the inline definition in the importer. Take the opportunity to simplify the mapping code. Adjust the standard library usage of the `BOOL` type which is now eclipsed by the new `WindowsBool` type, preferring to use `Bool` whenever possible. Thanks to Jordan Rose for the suggestion to do this and a couple of hints along the way.
139 lines
2.0 KiB
Plaintext
139 lines
2.0 KiB
Plaintext
module cfuncs { header "cfuncs.h" }
|
|
module ctypes {
|
|
header "ctypes.h"
|
|
explicit module bits {
|
|
header "ctypes/bits.h"
|
|
}
|
|
}
|
|
module stdio { header "stdio.h" }
|
|
module cvars { header "cvars.h" }
|
|
module blocks {
|
|
header "blocks.h"
|
|
export *
|
|
}
|
|
|
|
// Note: The real Darwin includes stdc stuff. This one is just for testing
|
|
// Darwin-specific things.
|
|
module Darwin {
|
|
module MacTypes {
|
|
header "MacTypes.h"
|
|
export *
|
|
}
|
|
}
|
|
|
|
module CoreMIDI {
|
|
header "CoreMIDI.h"
|
|
export *
|
|
}
|
|
|
|
module Dispatch {
|
|
header "dispatch.h"
|
|
export *
|
|
}
|
|
|
|
module MachO {
|
|
header "dyld.h"
|
|
export *
|
|
}
|
|
|
|
module AVFoundation {
|
|
header "AVFoundation.h"
|
|
export *
|
|
}
|
|
module CoreGraphics {
|
|
header "CoreGraphics.h"
|
|
export *
|
|
}
|
|
module CoreFoundation {
|
|
header "CoreFoundation.h"
|
|
export *
|
|
}
|
|
|
|
module Foundation {
|
|
header "Foundation.h"
|
|
export *
|
|
}
|
|
module AppKit {
|
|
header "AppKit.h"
|
|
export *
|
|
}
|
|
module UIKit {
|
|
header "UIKit.h"
|
|
export *
|
|
}
|
|
|
|
module NotificationCenter {
|
|
header "NotificationCenter.h"
|
|
export *
|
|
}
|
|
|
|
module objc_ext { header "objc_ext.h" }
|
|
module macros {
|
|
header "macros.h"
|
|
// Don't re-export macros_private_impl.
|
|
export macros_impl
|
|
}
|
|
module macros_impl { header "macros_impl.h" }
|
|
module macros_private_impl { header "macros_private_impl.h" }
|
|
module user_objc { header "user_objc.h" }
|
|
|
|
module Properties {
|
|
header "Properties.h"
|
|
export *
|
|
}
|
|
|
|
module Security {
|
|
header "Authorization.h"
|
|
header "SecItem.h"
|
|
export *
|
|
}
|
|
|
|
module nullability {
|
|
header "nullability.h"
|
|
export *
|
|
}
|
|
|
|
module objc_structs {
|
|
header "objc_structs.h"
|
|
export *
|
|
}
|
|
|
|
module enums_using_attributes {
|
|
header "enums_using_attributes.h"
|
|
}
|
|
|
|
module errors {
|
|
header "errors.h"
|
|
export *
|
|
}
|
|
|
|
module c_simd {
|
|
header "simd.h"
|
|
export *
|
|
}
|
|
|
|
module objc_generics {
|
|
header "objc_generics.h"
|
|
export *
|
|
}
|
|
|
|
module CoreMedia {
|
|
header "CoreMedia.h"
|
|
export *
|
|
}
|
|
|
|
module OtherSubscripts {
|
|
header "OtherSubscripts.h"
|
|
export *
|
|
}
|
|
|
|
module bridged_typedef {
|
|
header "bridged_typedef.h"
|
|
export *
|
|
}
|
|
|
|
module WinBOOL {
|
|
header "winbool.h"
|
|
export *
|
|
}
|