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
4010357ae1
[interop][SwiftToCxx] fix foundation-type-not-exposed-by-default-to-cxx.swift test on Linux and Windows
2023-05-06 06:55:48 -07:00
Alex Lorenz
c7836e3a8e
[interop][SwiftToCxx] avoid emitting ambiguous C++ overloads
...
Just do an arity check for now
2023-05-05 17:07:43 -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
c41774188c
[interop][SwiftToCxx] add swift::String overlay constructor for constructing it directly from a C string literal
...
resolves https://github.com/apple/swift/issues/63448
2023-05-05 06:29:59 -07:00
Alex Lorenz
f4f6f7a408
[interop][SwiftToCxx] avoid importing C++ stdlib in C++ section of generated header inside of 'pragma clang attribute' block
2023-05-04 17:01:39 -07:00
Alex Lorenz
82eb493aa0
Merge pull request #65401 from hyp/eng/varfnnameassert
...
[interop][SwiftToCxx] do not assert when emitting a public var and fu…
2023-04-28 07:21:00 -07:00
Alex Lorenz
4365bc0e7e
Merge pull request #65397 from hyp/eng/enum-final-boss
...
[interop][SwiftToCxx] add additional type representation emission che…
2023-04-28 07:20:49 -07:00
Alex Lorenz
601802820e
[interop][SwiftToCxx] do not assert when emitting a public var and function with the same C++ name
2023-04-24 14:03:46 -07:00
Alex Lorenz
7efae9a74c
[interop][SwiftToCxx] add additional type representation emission check for associated enum element types
...
This ensures that we do not try to emit enums whose associated values come from dependent modules that don't have a C++ representation
2023-04-24 12:31:30 -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
0be1ad1a02
Merge pull request #65339 from hyp/eng/opaque-layout-ok-struct
...
[interop][SwiftToCxx] do not assert when emitting non-resilient struc…
2023-04-21 09:30:18 -07:00
Alex Lorenz
e6e43c6b80
[interop][SwiftToCxx] do not assert when emitting non-resilient structs with opaque layout
2023-04-20 18:46:07 -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
ce443011c0
Merge pull request #64924 from hyp/eng/cxx-interop-default-mode
...
[interop] support 'default' mode for '-cxx-interoperability-mode' option
2023-04-05 15:51:11 -07:00
Alex Lorenz
00181138fd
[interop] support 'default' mode for '-cxx-interoperability-mode' option
...
Default corresponds to the Swift language version used to compile the input. Swift-5.9 is still supported for now, but will be removed shortly
2023-04-04 15:35:48 -07:00
Nate Chandler
90f7af22c9
[SILOpt] Run DestroyAddrHoisting in mandatory.
...
Run DestroyAddrHoisting in the pipeline where DestroyHoisting was
previously running. Avoid extra ARC traffic that having no form of
destroy hoisting in the mandatory pipeline results in.
rdar://90495704
2023-04-04 11:11:34 -07:00
Alex Lorenz
c4cc9e8e42
[interop][SwiftToCxx] do not error out on -Wnon-modular-include-in-framework-module clang diagnostic when importing the generated header as part of a framework back into C++ via a Clang module
2023-03-30 08:40:40 -07:00
Alex Lorenz
394c5bc7ce
[interop] fix tests after fixing private annotations on the 'swift' namespace
2023-03-18 19:30:06 -07:00
Alex Lorenz
5ca0b5a0c5
[interop][SwiftToCxx] ensure we always expose limited set of APIs from Swift's standard library to C++
...
Fixes https://github.com/apple/swift/issues/64340
2023-03-17 18:24:38 -07:00
Alex Lorenz
f405fb0fa8
[interop][SwiftToCxx] do not expose @alwaysEmitIntoClient properties to C++
2023-03-15 10:01:37 -07:00
Alex Lorenz
94c1de7611
[interop][SwiftToCxx] use 'SWIFT_INLINE_PRIVATE_HELPER' macro for static returnNewValue functions to ensure attribute(used) isn't applied to them
2023-03-15 09:13:38 -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
3cce09e769
[interop][SwiftToCxx] annotate several value members types as 'noexcept'
...
C++/clang is more strict about requiring noexcept in templates so we need some explicit annotations
2023-03-12 11:49:14 -07:00
Alex Lorenz
c7873490d2
Merge pull request #64290 from hyp/eng/fix-interop-xmodule-imports
...
[interop][SwiftToCxx] do not expose APIs with imported declarations w…
2023-03-11 06:08:40 -08:00
Alex Lorenz
23111df2a6
Merge pull request #64284 from hyp/eng/hide-error-apis-inteorp
...
[interop][SwiftToCxx] hide swift::Error APIs by default in C++ Swift …
2023-03-10 13:24:26 -08:00
Alex Lorenz
4fda7f4a9a
[interop][SwiftToCxx] do not expose APIs with imported declarations whose modules do not have a generated header as specified by the user
...
The frontend option '-clang-header-expose-module' allows the user to specify that APIs from an imported module have been exposed in another generated header, and thus APIs that depend on them can be safely exposed in the current generated header.
2023-03-10 12:34:02 -08:00
swift-ci
9b492d8f0d
Merge pull request #64235 from buttaface/droid
...
[android][test] Disable a SwiftToCxx Interop test that fails with clang 14 in the current LTS NDK 25
2023-03-10 11:47:41 -08:00
Alex Lorenz
75fd11cffc
[interop][SwiftToCxx] hide swift::Error APIs by default in C++ Swift stdlib overlay
...
They're still experimental
2023-03-10 08:34:45 -08:00
Alex Lorenz
3b7c92073b
Merge pull request #64265 from hyp/eng/swift-stdlib-is-swift-whoda-thunk-it
...
[interop][SwiftToCxx] emit Swift's stdlib inside of 'swift' namespace
2023-03-10 06:40:11 -08:00
Alex Lorenz
0dc90d38c1
[interop][SwiftToCxx] emit Swift's stdlib inside of 'swift' namespace
2023-03-09 17:32:43 -08:00
Alex Lorenz
617ead4a9d
[interop][SwiftToCxx] do not emit _Concurrency APIs in the C++ section of the generated header
...
Fixes an issue where actors exposed its unownedExecutor property with unsupported type.
2023-03-09 10:51:22 -08:00
Butta
12f20ec754
[android][test] Disable a SwiftToCxx Interop test that fails with clang 14 in the current LTS NDK 25
...
Marking as expected to fail so it's enabled again once we update the NDK and have a new clang
2023-03-09 16:04:09 +05:30
Alex Lorenz
3adf16eb28
Merge pull request #64083 from hyp/eng/api-stdlib-arg-labels
...
[interop][SwiftToCxx] incorporate argument labels into Stdlib API nam…
2023-03-03 21:37:40 -08:00
Alex Lorenz
97dc2758d7
Merge pull request #64075 from hyp/eng/lambda-attrs
...
[interop][SwiftToCxx] use 'nodebug' for inline thunks and apply inline and artificial attributes to lambd…
2023-03-03 21:37:25 -08:00
Alex Lorenz
13a63f4b05
[interop][SwiftToCxx] incorporate argument labels into Stdlib API names in C++
...
This allows easier use and more wider API exposure from the Swift stdlib
In the future, all functions and method should incorporate argument labels, but it's not yet clear how
2023-03-03 14:15:48 -08:00
Alex Lorenz
7caf34c190
[interop][SwiftToCxx] apply inline and artificial attributes to lambdas used with returnNewValue
2023-03-03 11:45:46 -08:00
Mishal Shah
aced44a84b
Merge pull request #63187 from apple/rebranch
...
Merge `rebranch` into `main` to support `stable/20221013` llvm-project branch
2023-03-03 11:01:34 -08:00
Alex Lorenz
c2a93f0480
[interop][SwiftToCxx] allow emission of overloaded functions with the same name
2023-03-02 16:34:06 -08: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
2dcbeb0bc9
[interop][SwiftToCxx] do not require @_expose when generating C++ interface for a Swift module
...
Instead, we emit API bindings for all supported public APIs, when -enable-experimental-cxx-interop is enabled
2023-03-02 14:06:47 -08:00
Alex Lorenz
4c24669c66
[interop][SwiftToCxx] add 'has-expose-attr-or-stdlib' mode to -clang-header-expose-decls flag
...
This mode allows the user to fallback to the old behavior that required @expose annotations, while still having standard library interfaces emitted in one header
2023-03-02 13:58:23 -08:00
Alex Lorenz
65a467420e
Revert "[interop][SwiftToCxx] add -enable-experimental-cxx-interop-in-clang-header flag that lets you enable reverse interop only"
...
This reverts commit c193a63fd4 .
2023-03-02 13:19:34 -08:00
Augusto Noronha
6f68fb0dde
Merge pull request #63950 from augusto2112/print-debug-name
...
Print debug name
2023-03-01 15:14:55 -08:00
Ben Barham
59afba5bf9
Manually merge branch 'main' into rebranch
2023-03-01 14:13:50 -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
swift-ci
b81f84e599
Merge remote-tracking branch 'origin/main' into rebranch
2023-02-27 17:53:21 -08:00
Augusto Noronha
c3d3c37c15
Adapt tests to have the Swift mangled name as a field in interop types
2023-02-27 15:58:03 -08:00
Alex Lorenz
f8c3895f32
[interop][SwiftToCxx] print availability attributes for Swift decls in C++
2023-02-27 12:07:36 -08:00