Egor Zhdan
5b5ffde79e
[cxx-interop] Do not crash when passing Bool as const T& parameter
...
The type bridging logic assumed that if a value of type `Swift.Bool` is passed to a Clang function as an argument, then the type of the parameter must be a Clang built-in type (usually `_Bool`). This is not always correct. For instance, the type might be a templated const reference.
rdar://125508505
2024-05-09 15:28:33 +01:00
Alex Lorenz
62fd801828
[interop] C++ parameter of reference type should be imported as its pointee type in Swift even if parameter's type is type alias
...
This finally allows std::vector.push_back to be called with the pushed value directly passed into it
2023-05-03 18:23:03 -07:00
Puyan Lotfi
84a69c4143
[C++-Interop] Import const &T function parameters as @in_guaranteed
...
When passing value types as a const-ref to a C++ API, ensure that the
caller is tasked with handling the lifetime of the instance passed in.
2022-09-12 16:27:27 -04:00
Daniel Rodríguez Troitiño
691dcc9bb3
Test case for const T& in Obj-C++ methods
...
Add a test case that checks the behaviour introduced during the refactor
of `importFunctionParameterList` and `importMethodParamsAndReturnType`.
The test checks that both Obj-C++ methods and C++ functions treat `const
T&` parameters in the same way.
2022-09-02 11:51:15 -07:00
Zoe Carver
b681b0a503
Merge pull request #41810 from zoecarver/fix-crash-ref-to-depentent-param
2022-03-29 18:34:51 -07:00
zoecarver
16c8d0b4d3
[cxx-interop] Bail on parameter that are reference types to dependent types.
...
Currently, just like for return types, we can't import references to dependent types. Refs https://github.com/apple/swift/pull/41660 .
2022-03-29 14:58:55 -07:00
zoecarver
caf83c2375
[cxx-interop] Import const-refs as value types when importing clang function types.
...
Otherwise, it will pass the value as a poitner.
2022-03-29 11:42:57 -07:00
zoecarver
b839741d57
[cxx-interop] Support references to template types.
2022-03-04 13:54:42 -08:00
Zoe Carver
4c62dae594
Merge pull request #41660 from zoecarver/import-ref-to-dependent-type
...
[cxx-interop] Bail on dependent reference types. We don't know how to handle those yet.
2022-03-04 08:58:46 -08:00
zoecarver
5537b72c13
[cxx-interop] Bail on dependent reference types. We don't know how to handle those yet.
2022-03-03 17:15:33 -08:00
Alex Lorenz
ebb21d7ec1
[cxx-interop] Import const T& parameters as T.
...
This change allows Swift code to pass immutable values to const references in C++.
2022-03-03 14:42:27 -08:00
Saleem Abdulrasool
df9d1e815f
Interop/Cxx: explicitly require C++ for modules
...
The C++ interop modules require C++ support. Explicitly require C++ as
a feature when building these modules. This has no impact on the
changes as all the tests enable C++ already.
2021-01-06 16:59:42 -08:00
zoecarver
317272852b
[cxx-interop] Bail if the type a reference type is wrapping is unkown.
...
If we can't find the type a reference type is wrapping (the pointee
type), then don't import that type instead of crashing later.
2020-11-01 12:55:44 -08:00
Marcel Hlopko
e293330563
[CxxInterop] Import C++ references. ( #31784 )
2020-05-15 10:42:37 +02:00
Saleem Abdulrasool
6bf7593fd5
Revert "[CxxInterop] Import C++ references." ( #31777 )
2020-05-14 10:43:22 +02:00
Marcel Hlopko
30b5fd52e8
[CxxInterop] Import C++ references. ( #31702 )
2020-05-13 13:34:28 +02:00