Skip to content

[6.1][cxx-interop] Fix nested structs for non-opaque types #80587

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 14, 2025

Conversation

Xazax-hun
Copy link
Contributor

@Xazax-hun Xazax-hun commented Apr 7, 2025

Explanation: Fixes an issue where the generated reverse interop header would not compile for nested types when library evolution is off. While this is a bug in a new feature in 6.1, users upgrading from 6.0 to 6.1 can see this as a regression because the new constructs that we started to expose to the interop header in 6.1 will trigger the compilation error. Scope: C++ reverse interop for nested classes for non-opaque types.
Issue: rdar://147882976
Risk: Low, the fix is fairly targeted. While it does affect other (non-nested type) scenarios, those changes are straightforward making some names fully qualified. Moreover, that is well tested in our test suite.
Testing: Added tests to test suite
Original PR: #80495
Reviewer: @egorzhdan

@Xazax-hun Xazax-hun requested a review from a team as a code owner April 7, 2025 11:40
@Xazax-hun Xazax-hun requested a review from egorzhdan April 7, 2025 11:41
@Xazax-hun Xazax-hun added c++ interop Feature: Interoperability with C++ 🍒 release cherry pick Flag: Release branch cherry picks labels Apr 7, 2025
Explanation: Fixes an issue where the generated reverse interop header would not
compile for nested types when library evolution is off. While this is a
bug in a new feature in 6.1, users upgrading from 6.0 to 6.1 can see
this as a regression because the new constructs that we started to
expose to the interop header in 6.1 will trigger the compilation error.
Scope: C++ reverse interop for nested classes for non-opaque types.
Issue: rdar://147882976
Risk: Low, the fix is fairly targeted. While it does affect other (non-nested
type) scenarios, those changes are straightforward making some names fully
qualified. Moreover, that is well tested in our test suite.
Testing: Added tests to test suite
Reviewer: @egorzhdan
@Xazax-hun Xazax-hun force-pushed the gaborh/nested-reverse-interop-fixes-on-6.1 branch from 5fa0d63 to dc10708 Compare April 7, 2025 16:38
@Xazax-hun
Copy link
Contributor Author

@swift-ci please test

@Xazax-hun Xazax-hun added swift 6.1 c++ interop Feature: Interoperability with C++ and removed c++ interop Feature: Interoperability with C++ labels Apr 10, 2025
@Xazax-hun Xazax-hun merged commit f3c113c into release/6.1 Apr 14, 2025
5 checks passed
@Xazax-hun Xazax-hun deleted the gaborh/nested-reverse-interop-fixes-on-6.1 branch April 14, 2025 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ interop Feature: Interoperability with C++ 🍒 release cherry pick Flag: Release branch cherry picks swift 6.1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants