Alex Lorenz
0dc90d38c1
[interop][SwiftToCxx] emit Swift's stdlib inside of 'swift' namespace
2023-03-09 17:32:43 -08:00
Alex Lorenz
97dc2758d7
Merge pull request #64075 from hyp/eng/lambda-attrs
...
[interop][SwiftToCxx] use 'nodebug' for inline thunks and apply inline and artificial attributes to lambd…
2023-03-03 21:37:25 -08:00
Alex Lorenz
7caf34c190
[interop][SwiftToCxx] apply inline and artificial attributes to lambdas used with returnNewValue
2023-03-03 11:45:46 -08:00
Augusto Noronha
6f68fb0dde
Merge pull request #63950 from augusto2112/print-debug-name
...
Print debug name
2023-03-01 15:14:55 -08:00
Augusto Noronha
c3d3c37c15
Adapt tests to have the Swift mangled name as a field in interop types
2023-02-27 15:58:03 -08:00
Alex Lorenz
3948a2a5d3
[interop][SwiftToCxx] annotate inline thunks with SWIFT_INLINE_THUNK
...
This macro applies always_inline in addition to inline. It also applies artificial, which lets debugger know that this is an artificial function. The used attribute is added in debug builds to ensure that the symbol is emitted in the binary so that LLDB can invoke it.
2023-02-24 11:23:46 -08:00
Alex Lorenz
3b3d6c825a
[interop][SwiftToCxx] Annotate emitted declarations with Clang's external_source_symbol attribute
...
Each emitted declaration is annotated with the external_source_symbol with its own USR, to allow Clang's indexer to recognize this declaration as a Swift declaration with a specific USR
2023-01-12 12:15:01 -08:00
Alex Lorenz
0312e0613d
[interop][SwiftToCxxToSwift] hide reverse interop module namespaces from forward interop
2022-11-07 15:52:04 -08:00
Alex Lorenz
3a9b6dce9d
[interop][SwiftToCxx] add support for emitting Swift stdlib dependency in one header file
...
This is the default behavior. You can disable this by specifying the -clang-header-expose-decls= flag explicitly when generating the header
2022-09-28 08:08:48 -07:00
Alex Lorenz
2a05109c58
[interop][SwiftToCxx] Declare the generic usability type trait before the C++ class that represents the Swift type
...
This allows you to import a method that returns the type of the context in which the method is declared when such
type is a generic parameter in another type. This means that it's now possible to bridge the initializer for
RawRepresentable enums.
2022-09-21 07:57:32 -07:00
Alex Lorenz
1696f94223
[interop][SwiftToCxx] reimplement function lowering to correctly distinguish between direct/indirect return values and parameters
2022-09-07 11:43:38 -07:00
Alex Lorenz
ef5d11aab8
[interop][SwiftToCxx] NFC, Make swift::getTypeMetadata accessor part of struct template
...
This allows partial template specializations for adding metadata accessor for generic types 🤩
2022-08-31 17:16:45 -07:00
Alex Lorenz
489c16e906
[interop][SwiftToCxx] fix the circular depedency issue for struct emission
2022-08-19 15:02:56 -07:00
Alex Lorenz
f371c4307b
[interop][SwiftToCxx] pass boxed resilient value types to generic functions correctly
2022-08-09 14:16:58 -07:00
Alex Lorenz
c537cd2383
[interop][SwiftToCxx] NFC, move swift::_impl::OpaqueStorage into _SwiftCxxInteroperability shims header
2022-08-09 13:57:34 -07:00
Alex Lorenz
93b6e1bf05
[interop][SwiftToCxx] NFC, add test coverage for resilient mutating method
2022-08-08 13:08:54 -07:00
Alex Lorenz
23ed6e8c9f
[interop][SwiftToCxx] support instance property setters in C++
2022-07-18 17:49:51 +01:00
Alex Lorenz
5b05d3dc67
[interop][SwiftToCxx] arm64e: authenticate value witness table in C++
...
Fixes arm64e test failures for C++ interop tests
2022-07-18 13:50:32 +01:00
Alex Lorenz
455007e63e
[interop][SwiftToCxx] NFC, add a test case for emitting @frozen structs
2022-06-21 16:53:59 -07:00
Alex Lorenz
38387ad500
[interop][SwiftToCxx] add _Nonnull to resilient struct constructor that takes in VWT
2022-06-15 21:51:11 -07:00
Alex Lorenz
f577330b40
[interop][SwiftToCxx] fix copy constructor for resilient structs
2022-06-15 20:56:42 -07:00
Alex Lorenz
5474d7e54d
[interop][SwiftToCxx] Add support for emitting resilient struct bindings
2022-06-15 20:33:23 -07:00