Gabor Horvath
353f0608f9
[cxx-interop] Fix unavailable generics triggering compilation error
...
In some cases, the reverse interop generated both a forward declaration and a
definition with unavailable attribute in the C++ header. Unfortunately, the
kinds of these symbol did not match. The forward declaration was templated
while the definition was not. The forward declaration has the correct kind,
so this patch extends the printing of unavailable definitions to include the
generic arguments.
rdar://119835933
2024-06-11 11:43:02 +01:00
Akira Hatanaka
daebcc3fdf
[interop][SwiftToCxx] Ignore delayedMembers in C++ ( #70939 )
...
[interop][SwiftToCxx] Ignore delayedMembers in C++
This fixes a bug where an ObjC @interface declaration is emitted for a
class that has a member that isn't emitted.
Resolves rdar://119835836
2024-01-25 14:47:39 -08:00
Alex Lorenz
97c25ae854
[interop][SwiftToCxx] nested types are not yet supported so do not emit references to them
2023-08-02 13:03:05 -07:00
Kavon Farvardin
90077ab593
update diagnostics in clang importer
...
rdar://109281444
2023-05-24 20:56:37 -07:00
Alex Lorenz
82ef9d35e7
[interop][SwiftToCxx] do not emit unavaialble stubs for internal/private decls
...
only emit them for public ones
2023-05-06 14:51:18 -07:00
Alex Lorenz
74e87a9ae6
[interop][SwiftToCxx] do not expose move-only Swift types
...
Swift's consume semantics are not yet supported in C++
2023-05-06 07:12:46 -07:00
Alex Lorenz
bf35e3f55a
[interop][SwiftToCxx] provide a clear unavailable message for protocol decls in C++
2023-05-05 17:03:28 -07:00
Alex Lorenz
aff3568a12
[interop][SwiftToCxx] emit unavailable type stubs for top level types that could not be emitted in the C++ section of the generated header
2023-05-05 17:03:26 -07:00
Alex Lorenz
20704ec0f3
[interop][SwiftToCxx] do not expose enums with a protocol type associated value
2023-04-21 12:06:43 -07:00
Alex Lorenz
71ef7e8d3d
[interop][SwiftToCxx] do not expose unsupported enums yet
...
This includes indirect enums, enums with multiple associated values, or enums whose associated value is a type we don't yet support
2023-04-20 18:05:00 -07:00
Alex Lorenz
f405fb0fa8
[interop][SwiftToCxx] do not expose @alwaysEmitIntoClient properties to C++
2023-03-15 10:01:37 -07:00
Alex Lorenz
9f86ff9072
[interop][SwiftToCxx] explicitly tell the user that @objc decls can't be yet exposed to C++
2023-03-13 18:16:36 -07:00
Alex Lorenz
1d3797308d
[interop][SwiftToCxx] do not expose functions / properties that throw without the experimental feature
2023-03-02 15:22:36 -08:00
Alex Lorenz
8bce678200
[interop][SwiftToCxx] diagnose when certain generic decls can not yet be exposed to C++
2023-02-28 09:17:31 -08:00
Daniel Rodríguez Troitiño
c477dad3c2
Mark unsupported-decls-in-cxx as REQUIRES: distributed ( #62452 )
...
The test tries to import Distributed, but it will fail to pass if the
compiler/stdlib has not been built with experimental distributed
support.
2022-12-08 17:15:50 -08:00
Alex Lorenz
d0e5372fc0
[interop][SwiftToCxx] give explicit error for @alwaysEmitIntoClient exposed functions
2022-12-06 11:44:29 -08: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
0d754e1d3f
[interop][SwiftToCxx] add support for exposing non-isolated actor declarations
2022-11-02 12:17:55 -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
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
b96bcb4691
[interop][SwiftToCxx] prohibit empty tuple param type
2022-09-15 11:22:22 -07:00
Alex Lorenz
0fea0c4eca
[interop][SwiftToCxx] handle Swift tuples are unsupported types for now
2022-09-12 17:24:20 -07:00