Alex Lorenz
71e4462508
[interop][SwiftToCxx] use vtable offset/thunk to dispatch class property accessors
2023-02-11 05:55:47 -08:00
Alex Lorenz
9e32761578
[interop][SwiftToCxx] dispatch virtual calls via thunks for resilient classes
2023-02-10 16:32:54 -08:00
Alex Lorenz
b7007cb748
[interop][SwiftToCxx] dispatch Swift class methods correctly using the vtable
2023-02-09 20:20:53 -08:00
Alex Lorenz
0b0cc99c98
[interop][SwiftToCxx] avoid -Wshadow warning for C++ representation of enum member parameters
2023-02-08 12:33:18 -08:00
Alex Lorenz
8305c7d5de
[interop][SwiftToCxx] add C++ bindings for static methods
2023-02-08 10:25:17 -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
1d7c0ee7a5
[interop][SwiftToCxx] NFC, make 'noexcept' a function signature modifier
2023-01-11 11:47:09 -08:00
Roberto Rosmaninho
fc68fb304e
Refactoring the C++ thunk to directly return the Swift::Expected intead od the SWIFT_RETURN_THUNK macro
2022-12-19 19:48:35 -03:00
Roberto Rosmaninho
80e75469bf
[Interop][SwiftToCxx] Replacing static by inline on _SwiftStdlibCxxOverlay.h and fixing code duplication on PrintClangFunction.cpp
2022-12-14 12:07:43 -03:00
Roberto Rosmaninho
ce666ac592
[Interop][SwiftToCxx] Adding support to return Swift::Expected when exceptions are not available.
2022-12-14 12:07:43 -03:00
Slava Pestov
65d2d4d621
IRGen: Encapsulate fields of GenericRequirement better
2022-12-11 22:14:37 -05:00
Alex Lorenz
510b7675f4
[interop][CxxToSwiftToCxx] fix the tests for unsupported class template instantions; emit C++ type metadata accessors for type aliased templates
2022-12-08 21:28:29 -08:00
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
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
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
8710c2685a
[interop][SwiftToCxx] Fix a bug with bridging class initializer in version Swift 5
2022-10-03 16:40:28 -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
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
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
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
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
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
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
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
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