Commit Graph

572 Commits

Author SHA1 Message Date
Alex Lorenz
1d6d3ff970 [interop][SwiftToCxx] trap on moves of Swift values for now
Move support will be added later
2022-09-21 06:59:29 -07:00
Alex Lorenz
2132cc91d0 [interop][SwiftToCxx] do not use std::move to move the returned C++ value
move needs <utility>, which is not includable in the test SDK.
2022-09-19 12:25:42 -07:00
Alex Lorenz
143ce1e682 [interop][SwiftToCxx] bridge Swift's Optional type in an experimental manner 2022-09-15 12:35:33 -07:00
Alex Lorenz
b96bcb4691 [interop][SwiftToCxx] prohibit empty tuple param type 2022-09-15 11:22:22 -07:00
Alex Lorenz
7925701ed3 [interop][SwiftToCxx] support returning class values in enum's generic associated value getter 2022-09-14 12:37:27 -07:00
Alex Lorenz
773a0436cf [interop][SwiftToCxx] extract generic associated value from enum 2022-09-14 12:21:18 -07:00
Alex Lorenz
07337cdaf6 [interop][SwiftToCxx] initial generic enum support 2022-09-14 11:37:50 -07:00
Alex Lorenz
ebcb37f479 Merge pull request #61072 from hyp/i/type-trait-on-demand
[interop][SwiftToCxx] expose generic type traits for C++ types in gen…
2022-09-13 13:16:49 -07:00
Alex Lorenz
88913c1d65 [interop][SwiftToCxx] expose generic type traits for C++ types in generated header before it's used first 2022-09-13 07:47:30 -07:00
Alex Lorenz
b410886223 Merge pull request #61067 from hyp/eng/array-interface
[interop][SwiftToCxx] experimentally expose exposable Swift's Array members to C++
2022-09-13 07:20:50 -07:00
Alex Lorenz
8c48d268d5 [interop][SwiftToCxx] expose subscript getter for Array's operator [] 2022-09-12 21:13:44 -07:00
Alex Lorenz
d5c531fefc [interop][SwiftToCxx] experimentally expose exposable Swift's Array members to C++ 2022-09-12 20:42:16 -07:00
Alex Lorenz
1a449f5904 [interop][SwiftToCxx] emit members in extensions for same-type 2022-09-12 20:38:21 -07:00
Alex Lorenz
6ed62904d3 Merge pull request #61053 from hyp/i/cxx-type-in-generic-ctx
[interop] use C++ value types bridged to Swift in Swift generic context from C++
2022-09-12 18:59:42 -07:00
Alex Lorenz
0fea0c4eca [interop][SwiftToCxx] handle Swift tuples are unsupported types for now 2022-09-12 17:24:20 -07:00
Alex Lorenz
0dcb8b58e5 [interop][SwiftToCxx] use C++ types bridged to Swift in Swift generic context from C++ ♾ 2022-09-12 13:05:49 -07:00
Alex Lorenz
21adff9feb Merge pull request #61047 from hyp/eng/cxx-types-to-cxx
[interop] pass and return C++ value types to/from Swift in C++
2022-09-12 12:39:45 -07:00
Alex Lorenz
26e5742fe7 [interop][SwiftToCxx] emit generic type traits for C++ types bridged into Swift and then back to C++ 2022-09-12 12:39:30 -07:00
Alex Lorenz
0db14574c1 [interop][SwiftToCxx] pass C++ value types into Swift correctly 2022-09-12 07:12:50 -07:00
Alex Lorenz
b4d7a0c208 [interop][SwiftToCxx] bridge returned C++ record types back to C++ from Swift 2022-09-11 18:42:41 -07:00
Alex Lorenz
a975241c1b Merge pull request #61004 from WANGJIEKE/cxx-interop-enum-property-method
[Interop][SwiftToCxx] Support printing methods and properties for enums
2022-09-09 09:22:19 -07:00
Tongjie Wang
5a55cd7ba2 [Interop][SwiftToCxx] Support printing methods and properties for enums 2022-09-08 11:05:20 -07:00
Alex Lorenz
1d164039b1 [interop][SwiftToCxx] experimentally expose Swift's Array type
This is done without annotations on the stdlib yet while @_expose is still experimental
2022-09-08 11:04:03 -07:00
Alex Lorenz
6e7b3ab6ca Merge pull request #60978 from hyp/eng/rewrite-lowering
[interop][SwiftToCxx] reimplement function lowering to correctly dist…
2022-09-07 22:39:46 -07:00
Doug Gregor
553537d326 Revert "[NFC] Add isKnownObjC param to RenamedDeclRequest"
This reverts commit 102f9a30c2.
2022-09-07 14:09:50 -07:00
Alex Lorenz
661ae6bd1a [interop][SwiftToCxx] cleanup the function signature stuff 2022-09-07 14:06:28 -07:00
Alex Lorenz
c351f3a550 [interop][SwiftToCxx] error result param should be handled by lowered function signature 2022-09-07 12:55:12 -07:00
Alex Lorenz
f4de75ae2c [interop][SwiftToCxx] 'self' param should be handled by type param visitor 2022-09-07 12:45:38 -07:00
Alex Lorenz
0592894e33 [interop][SwiftToCxx] move generic additional type parameters into lowered function signature 2022-09-07 12:22:04 -07:00
Alex Lorenz
4520c52ac6 [interop][SwiftToCxx] handle indirect result values as part of parameter list 2022-09-07 11:59:25 -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
e98d908ff5 Merge pull request #60858 from Robertorosmaninho/cxx-interop/SwiftToCxxErrorHandling
[SwiftToCxx] Including Cxx representation of Swift's Error
2022-09-07 08:55:27 -07:00
Roberto Rosmaninho
68bfbddf14 [SwiftToCxx] Creating new test case and fixing namespace 2022-09-05 10:38:28 -03:00
Alex Lorenz
3e4b52c42a [interop][SwiftToCxx] add support for generic methods in generic structs ♺ 2022-09-01 13:01:26 -07:00
Alex Lorenz
d9f4c072cc [interop][SwiftToCxx] correctly invoke property accessors in generic structs 2022-09-01 06:57:49 -07:00
Alex Lorenz
a5043c354d [interop][SwiftToCxx] add support for invoking methods in generic structs 2022-08-31 20:19:19 -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
4154b56745 [interop][SwiftToCxx] unify generic function printing with generic struct printing
This is a pre-requisite for supporting methods in generic structs.
2022-08-31 15:31:04 -07:00
Alex Lorenz
f89f64a5cb [interop][SwiftToCxx] add support for passing generic structs with concrete type params 2022-08-31 14:02:17 -07:00
Alex Lorenz
031b779031 [interop][SwiftToCxx] add support for returning generic types bounded to concrete generic params 2022-08-31 14:02:17 -07:00
Alex Lorenz
c526ac8a0d [interop][SwiftToCxx] add 'inout' support for passing generic struct 2022-08-31 14:02:17 -07:00
Alex Lorenz
942523f3df [interop][SwiftToCxx] NFC, refactor full _impl type printer into a function 2022-08-31 14:02:17 -07:00
Alex Lorenz
6f43efe264 [interop][SwiftToCxx] add a restriction for calling only supported type metadata accessor function for generic types 2022-08-31 14:02:17 -07:00
Alex Lorenz
7d6cdbc445 [interop][SwiftToCxx] pass generic type to a function by value (non specialized generic though) 2022-08-31 14:02:17 -07:00
Alex Lorenz
ebd8dea0fd [interop][SwiftToCxx] return generic structs without concrete type specialization 2022-08-31 14:02:17 -07:00
Alex Lorenz
45d209fe1c [interop][SwiftToCxx] initial generic struct support 2022-08-31 14:02:15 -07:00
Alex Lorenz
8214b85f6b Merge pull request #60842 from WANGJIEKE/cxx-interop-enum-creation
[Interop][SwiftToCxx] Support enum creation from Cxx
2022-08-31 14:00:50 -07:00
Doug Gregor
28644db815 Merge pull request #60851 from DougGregor/print-cxx-sugared-types
[Print as C++] Don't crash on sugared types
2022-08-30 22:52:47 -07:00
Tongjie Wang
911cfe9fbb print static struct member as inline and improve test cases 2022-08-30 17:19:00 -07:00
Roberto Rosmaninho
9ebc0bd26e [SwiftToCxx] Trowing Swift::Error instead of NaiveException 2022-08-30 16:25:17 -03:00