Commit Graph

572 Commits

Author SHA1 Message Date
Doug Gregor
413fb37b70 [Print as C++] Don't crash on sugared types 2022-08-30 11:01:51 -07:00
Roberto Rosmaninho
ec10c5f5e6 [SwiftToCxx] Adding _Nullable to avoid warnings 2022-08-30 14:15:45 -03:00
Roberto Rosmaninho
17ae63592f [SwiftToCxx] Implementing the Swift Error representation in C++ 2022-08-30 14:14:21 -03:00
Tongjie Wang
cbc23cbafc [Interop][SwiftToCxx] Support enum creation from Cxx 2022-08-29 20:16:52 -07:00
Alex Lorenz
a89d4f3ced [interop][SwiftToCxx] add support for generic methods 2022-08-29 14:11:33 -07:00
Alex Lorenz
c08428cd56 [interop][SwiftToCxx] do not support generics with requirements for now 2022-08-29 12:14:33 -07:00
Alex Lorenz
9fc19fb60c Merge pull request #60827 from hyp/eng/expose-init
[interop][SwiftToCxx] support @_expose attribute on initializers
2022-08-29 11:48:23 -07:00
Alex Lorenz
925ba6f7ab Merge pull request #60051 from WANGJIEKE/fix-value-witness-table-type
Change return type of getEnumTag in value witness table
2022-08-29 11:35:42 -07:00
Alex Lorenz
7bf7642d51 [interop][SwiftToCxx] support @_expose attribute on initializers 2022-08-29 07:41:49 -07:00
Alex Lorenz
06d9fd24d4 [interop][SwiftToCxx] add experimental Swift::String -> NSString conversion operator 2022-08-25 15:09:30 -07:00
Alex Lorenz
bd8c874e17 [interop][SwiftToCxx] experimentally expose Swift::String type to C++
The only member that's currently exposed is the default initializer, everything else is in extensions
2022-08-25 15:09:30 -07:00
Alex Lorenz
288e4cb566 [interop][SwiftToCxx] do not emit functions/methods that use unexposed types 2022-08-25 15:09:26 -07:00
Alex Lorenz
e9450cf80b [interop][SwiftToCxx] add a test to print out empty Swift stdlib module 2022-08-24 15:10:11 -07:00
Alex Lorenz
8de79390be [interop][SwiftToCxx] add @_expose(Cxx) attribute support
This attribute instructs the compiler that this declaration should be included in the generated C++ bindings
2022-08-24 10:14:07 -07:00
Slava Pestov
b254dc2141 PrintAsClang: Stop calling getAllConformances() on protocols 2022-08-23 00:03:37 -04:00
Alex Lorenz
489c16e906 [interop][SwiftToCxx] fix the circular depedency issue for struct emission 2022-08-19 15:02:56 -07:00
Tongjie Wang
7f9fadb7d8 Fix type for resilient enum case global variables 2022-08-18 12:31:40 -07:00
Tongjie Wang
ae73a03ec0 Merge branch 'main' into fix-value-witness-table-type 2022-08-18 09:57:57 -07:00
Alex Lorenz
f5787c9e40 Merge pull request #60564 from WANGJIEKE/cxx-interop-new-enum-design
[Interop][SwiftToCxx] Update current enum implementation for new enum design
2022-08-17 06:32:32 -07:00
Alex Lorenz
7d33a85e03 Merge pull request #60583 from hyp/eng/unsupported-noooo
[interop][SwiftToCxx] do not emit unsupported function signatures yet
2022-08-16 21:27:37 -07:00
Alex Lorenz
d4a7f86e3d [interop][SwiftToCxx] do not emit unsupported function signatures yet 2022-08-16 14:39:22 -07:00
Alex Lorenz
dcf87a2f6d [interop][SwiftToCxx] prohibit printing of generic structs for now 2022-08-16 10:58:13 -07:00
Alex Lorenz
94f6496431 [interop][SwiftToCxx] NFC,do not require definition of protocols for classes in C++ generation mode 2022-08-16 10:44:18 -07:00
Tongjie Wang
4b9d9cc04f update formatting 2022-08-15 20:24:03 -07:00
Tongjie Wang
482e1ac80f [Interop][SwiftToCxx] Implement the new enum header design 2022-08-15 15:31:43 -07:00
Alex Lorenz
9151db55e7 Merge pull request #60451 from WANGJIEKE/cxx-interop-resilient-enum
[Interop][SwiftToCxx] add support for resilient enum
2022-08-11 06:52:08 -07:00
Alex Lorenz
d23a64e622 [interop][SwiftToCxx] NFC, reformat printTypeGenericTraits 2022-08-09 14:20:41 -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
330fc0b07a [interop][SwiftToCxx] generic functions should return value types correctly 2022-08-09 05:20:58 -07:00
Alex Lorenz
bf224c75a6 [interop][SwiftToCxx] pass structs to generic functions 2022-08-08 15:28:00 -07:00
Tongjie Wang
ff28b56e15 [Interop][SwiftToCxx] add support for resilient enum 2022-08-08 14:37:13 -07:00
Alex Lorenz
7ecf84a771 [interop][SwiftToCxx] ensure that resilient class values are supported 2022-08-08 13:08:54 -07:00
Alex Lorenz
bb7ba7c7ce Merge pull request #60442 from hyp/eng/generic-class
[interop][SwiftToCxx] add support for passing and returning class val…
2022-08-08 13:06:46 -07:00
Alex Lorenz
a9f262e322 [interop][SwiftToCxx] add support for passing and returning class values to generic functions 2022-08-08 08:38:28 -07:00
Alex Lorenz
7384ee2a24 Merge pull request #60381 from hyp/eng/i/class-members-docs
[interop][SwiftToCxx] add support for members in class types
2022-08-05 05:57:13 +01:00
Tongjie Wang
d34e086c79 Change return type of getEnumTag in value witness table
make it actually matches the description above
2022-08-04 18:41:16 -07:00
Alex Lorenz
91d21244ea Merge pull request #60375 from hyp/eng/i/shimspathtool
[interop][SwiftToCxx] include _SwiftCxxInteroperability.h in the tool…
2022-08-03 23:12:51 +01:00
Alex Lorenz
aab5c45c01 [interop][SwiftToCxx] include _SwiftCxxInteroperability.h in the toolchain, relative to clang's resource dir 2022-08-03 18:31:53 +01:00
Alex Lorenz
7eefb30cb1 [interop][SwiftToCxx] emit property accessors in class types correctly
property accessors could potentially mutate the class instance, so don't make them const
2022-08-03 13:12:51 +01:00
Alex Lorenz
c0bda0617a [interop][SwiftToCxx] emit class method bindings 2022-08-03 13:03:45 +01:00
Alex Lorenz
7c5b160bc6 [interop][SwiftToCxx] map class inheritance to C++ class hierarchy 2022-08-03 09:35:36 +01:00
Alex Lorenz
478987b54e [interop][SwiftToCxx] expose getOpaquePointer class pointer accessors via swift helper class in shims header 2022-08-02 20:15:10 +01:00
Alex Lorenz
0ca61069ea [interop][SwiftToCxx] Add a base ref counted Swift class type to _SwiftCxxInteroperability.h header 2022-08-02 18:54:14 +01:00
Alex Lorenz
c332a90a8a [interop][SwiftToCxx] retain & release class values when a C++ class reference is copy assigned 2022-08-02 17:52:49 +01:00
Alex Lorenz
e289865861 [interop][SwiftToCxx] retain class values when a C++ class reference is copy constructed 2022-08-02 17:34:21 +01:00
Alex Lorenz
e1d812a848 [interop][SwiftToCxx] pass class parameter types by 'inout' 2022-08-02 16:48:12 +01:00
Alex Lorenz
51c0a3ff05 [interop][SwiftToCxx] add support for passing class types to Swift functions 2022-08-02 15:22:16 +01:00
Alex Lorenz
a8ed297e8b [interop][SwiftToCxx] class bridging: use makeRetained to return a class value from Swift 2022-08-02 14:55:58 +01:00
Alex Lorenz
26d55a2b83 [interop][SwiftToCxx] start emitting bindings for Swift class types
This includes release on destruction, and correctly returning class values from Swift to C++.
2022-08-02 09:25:35 +01:00