Commit Graph

572 Commits

Author SHA1 Message Date
Roberto Rosmaninho
f652c8ef63 [Interop][SwiftToCxx] Passing swift::Error declaration from _SwiftCxxInteroperability.h to Swift::Error in _SwiftStdlibCxxOverlay.h 2022-11-18 22:16:00 -03:00
Roberto Rosmaninho
c6e6f7553b [Interop][SwiftToCxx] Deleting unnecessary NaiveException 2022-11-18 22:16:00 -03:00
Alex Lorenz
b97189fe10 [interop][SwiftToCxx] Bump up the interoperability version 2022-11-08 06:48:19 -08:00
Alex Lorenz
490989dc17 Merge pull request #61962 from hyp/eng/hide-Swift-ns
[interop][SwiftToCxxToSwift] hide reverse interop module namespaces f…
2022-11-08 06:38:30 -08:00
Alex Lorenz
0312e0613d [interop][SwiftToCxxToSwift] hide reverse interop module namespaces from forward interop 2022-11-07 15:52:04 -08:00
swift-ci
dc422272a8 Merge pull request #61958 from hyp/eng/SWIFT_INLINE_THUNK_stdlib_overlay
[interop][SwiftToCxx] NFC, adopt SWIFT_INLINE_THUNK in the stdlib ove…
2022-11-07 14:40:51 -08:00
Alex Lorenz
fdababa494 Merge pull request #61916 from hyp/eng/async-fns
[interop][SwiftToCxx] report an error for attempts to explicitly expo…
2022-11-07 10:07:02 -08:00
Alex Lorenz
e6806ab745 [interop][SwiftToCxx] NFC, adopt SWIFT_INLINE_THUNK in the stdlib overlay 2022-11-03 15:12:41 -07:00
Alex Lorenz
bd6367986e [interop][SwiftToCxx] report an error for attempts to explicitly expose 'async' functions to C++
also fixup distributed actor example in interop test
2022-11-03 13:46:52 -07:00
Alex Lorenz
8336edd344 [interop][SwiftToCxx] add support for constructing generic enum cases in C++
We only support cases with no payload, or one associated value still
2022-11-03 12:21:27 -07:00
Alex Lorenz
917dbaaa6f [interop][SwiftToCxx] bump up the interop version for actor support 2022-11-02 12:18:44 -07:00
Alex Lorenz
a0cb7a6e30 Merge pull request #61858 from hyp/eng/genericxx17
[interop][SwiftToCxx] add initial C++14/17 generics support
2022-11-02 12:17:37 -07:00
Alex Lorenz
e6784b84b1 [interop][SwiftToCxx] bump up interop version 2022-11-01 17:39:49 -07:00
Alex Lorenz
c179e23b19 [interop][SwiftToCxx] add static_assert type checking for generic types in pre-C++20 mode 2022-11-01 17:36:37 -07:00
Alex Lorenz
a66cc52109 [interop][SwiftToCxx] add static_assert type checking for generic functions in pre-C++20 mode
In the future we should also use enable_if to correctly resolve overloads
2022-11-01 17:21:01 -07:00
Alex Lorenz
4b52ae08fa [interop][SwiftToCxx] check that generics can be built in C++17/C++14 mode 2022-11-01 16:40:42 -07:00
Alex Lorenz
953c124ceb [interop][SwiftToCxx] guard 'requires' clauses in __cpp_concepts #ifdefs 2022-11-01 16:17:10 -07:00
Slava Pestov
0e4ccb21ed AST: Remove various references to AbstractTypeParamDecl 2022-11-01 19:13:46 -04:00
Roberto Rosmaninho
c92dc41c41 Deleting unnecessary includes and compilation flags 2022-10-21 17:29:00 -03:00
Alex Lorenz
fdc0632659 [interop][SwiftToCxx] do not emit domain ObjC error values in C++ mode 2022-10-21 12:47:18 -07:00
Roberto Rosmaninho
cb31700d03 Renaming testErrorCall to getErrorMetadata 2022-10-21 14:35:42 -03:00
Alex Lorenz
8636720706 Get closer to a working dynamic cast for error 2022-10-20 17:24:05 -07:00
Roberto Rosmaninho
5b8a2e213e [SwiftToCxx] Fixing as signature 2022-10-19 17:12:55 -03:00
Roberto Rosmaninho
5af07a470c test/Interop/SwiftToCxx/functions/swift-functions-errors.swift 2022-10-18 18:53:30 -03:00
Alex Lorenz
9e01a921d2 [interop] bump up the number in experimental-interoperability-version.json 2022-10-18 11:25:05 -07:00
Alex Lorenz
de1e67d054 [interop][SwiftToCxx] include the swiftToCxx shim header only when actually needed for reverse interop 2022-10-17 13:12:20 -07:00
Alex Lorenz
391b92fff7 [interop][SwiftToCxx] add some helper methods to work with Swift's Optional in C++ 2022-10-05 14:21:13 -07:00
Alex Lorenz
a949ca987e [interop][SwiftToCxx] do not expose actor classes in the generated header 2022-10-04 21:32:00 -07:00
Alex Lorenz
2d961d9e8c [interop][SwiftToCxx] do not print documentation comment for emitted methods if they're not actually emitted 2022-10-04 10:01:48 -07:00
Alex Lorenz
634ba4f903 Merge pull request #61425 from hyp/eng/init-class-bug
[interop][SwiftToCxx] Fix a bug with bridging class initializer in ve…
2022-10-03 22:07:14 -07:00
Alex Lorenz
8710c2685a [interop][SwiftToCxx] Fix a bug with bridging class initializer in version Swift 5 2022-10-03 16:40:28 -07:00
Alex Lorenz
f8b54e7ea7 [interop][SwiftToCxx] guard inline emitted Stdlib module 2022-10-03 11:31:06 -07:00
Alex Lorenz
f6cc59246b [interop][SwiftToCxx] fix the include path for swiftToCxx shim header for clang in /usr/local/bin/clang 2022-09-30 07:59:46 -07:00
Alex Lorenz
fe3105ff2d [interop][SwiftToCxx] add experimental-interoperability-version.json to the compiler distribution
This lets the clients check if their toolchain has the latest support
2022-09-29 19:12:33 -07:00
Alex Lorenz
dd7e068391 [interop][SwiftToCxx] add a Swift stdlib overlay header
It currently provides begin and end functions for array iteration
2022-09-29 07:41:54 -07:00
Alex Lorenz
cec9cd49dd Merge pull request #61343 from hyp/eng/ship-interop-hdr-toolchain
[interop][SwiftToCxx] install _SwiftCxxInteroperability.h header as p…
2022-09-28 22:01:40 -07:00
Alex Lorenz
43848fdb14 Merge pull request #61342 from apple/eng/fwd-decl-no-bridge
[interop][SwiftToCxx] forward declare - do not use bridged types in C…
2022-09-28 21:57:59 -07:00
Alex Lorenz
a24ebeaa51 [interop][SwiftToCxx] install _SwiftCxxInteroperability.h header as part of compiler build, not stdlib
The _SwiftCxxInteroperability.h is too tightly coupled to the compiler right now and should not be shipped with the standard library. In the future it could be moved back to the standard library.
2022-09-28 16:14:33 -07:00
Alex Lorenz
3dfcb96ad5 [interop][SwiftToCxx] forward declare - do not use bridged types in C++ mode
This allows SDK's stdlib Array to correctly decl String forward declaration
2022-09-28 14:11:13 -07: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
a6b58962f8 Merge pull request #61315 from hyp/eng/bridge-frts
[interop][SwiftToCxx] support interop with FRT in the generated C++ b…
2022-09-28 00:16:14 -07:00
Alex Lorenz
c193a63fd4 [interop][SwiftToCxx] add -enable-experimental-cxx-interop-in-clang-header flag that lets you enable reverse interop only 2022-09-27 11:26:21 -07:00
Alex Lorenz
e3a51c74dd [interop][SwiftToCxx] support interop with FRT in the generated C++ bindings 2022-09-27 10:37:46 -07:00
Alex Lorenz
a65c3d1a42 Merge pull request #61306 from hyp/eng/expose-clang-decls-always
[interop][SwiftToCxx] Referenced clang decls are always exposed
2022-09-26 22:13:15 -07:00
Alex Lorenz
25cfcd94d8 [interop][SwiftToCxx] Referenced clang decls are always exposed 2022-09-26 18:03:22 -07:00
Alex Lorenz
5736daf1f1 [interop][SwiftToCxx] support initializers for classes 2022-09-26 17:04:40 -07:00
Alex Lorenz
6f9b683617 [interop][SwiftToCxx] add support for bridging static properties 2022-09-26 12:50:13 -07:00
Alex Lorenz
bded6c5bc2 [interop][SwiftToCxx] bridge ObjC class types to C++ too (without ObjC guards first) 2022-09-25 13:19:37 -07:00
Alex Lorenz
ae549531ac Merge pull request #61225 from hyp/eng/fwd-generic-trait
[interop][SwiftToCxx] Declare the generic usability type trait before…
2022-09-21 15:56:14 -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