blob: 138b67f0673d619392ca65ffa3c32a71592bd079 [file] [log] [blame]
//===--- BridgedTypes.def - SIL-Bridged Type Mappings -----------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// This file defines the database of C and Objective-C types that require
// implicit conversions to bridge to native Swift types.
//
// BRIDGING_KNOWN_TYPE(MODULE, TYPE)
// - MODULE is the name of the module into which the type is imported.
// - TYPE is the name of the type.
//
// BRIDGE_TYPE(BRIDGED_MODULE, BRIDGED_TYPE,
// NATIVE_MODULE, NATIVE_TYPE,
// OPTIONAL_IS_BRIDGED)
// - BRIDGED_MODULE is the name of the module into which the foreign type
// is imported.
// - BRIDGED_TYPE is the name of the foreign type.
// - NATIVE_MODULE is the name of the module containing the native Swift type.
// - NATIVE_TYPE is the name of the native Swift type.
// - OPTIONAL_IS_BRIDGED is true or false depending on whether Native?
// is also bridged to Bridged?.
//
//===----------------------------------------------------------------------===//
#ifndef BRIDGING_KNOWN_TYPE
#define BRIDGING_KNOWN_TYPE(module, type)
#endif
#ifndef BRIDGE_TYPE
#define BRIDGE_TYPE(bmodule, btype, nmodule, ntype, opt)
#endif
BRIDGING_KNOWN_TYPE(Foundation, NSString)
BRIDGING_KNOWN_TYPE(Foundation, NSArray)
BRIDGING_KNOWN_TYPE(Foundation, NSDictionary)
BRIDGING_KNOWN_TYPE(Foundation, NSSet)
BRIDGING_KNOWN_TYPE(Foundation, NSError)
BRIDGING_KNOWN_TYPE(Swift, String)
BRIDGING_KNOWN_TYPE(ObjectiveC, ObjCBool)
BRIDGING_KNOWN_TYPE(ObjectiveC, Selector)
BRIDGING_KNOWN_TYPE(Darwin, DarwinBoolean)
BRIDGING_KNOWN_TYPE(Swift, Bool)
BRIDGING_KNOWN_TYPE(Swift, Error)
BRIDGE_TYPE(ObjectiveC, ObjCBool, Swift, Bool, false)
BRIDGE_TYPE(Darwin, DarwinBoolean, Swift, Bool, false)
#undef BRIDGING_KNOWN_TYPE
#undef BRIDGE_TYPE