Skip to content

[cxx-interop] Do not export enums with indirect associated values #76167

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
Aug 30, 2024

Conversation

Xazax-hun
Copy link
Contributor

We do not support any sort of indirect enums yet, the code gets into an infinite recursion. Let's skip exporting these types to C++ for now until proper support is implemented.

rdar://134852756

We do not support any sort of indirect enums yet, the code gets into an
infinite recursion. Let's skip exporting these types to C++ for now
until proper support is implemented.

rdar://134852756
@Xazax-hun Xazax-hun added the c++ interop Feature: Interoperability with C++ label Aug 30, 2024
@Xazax-hun
Copy link
Contributor Author

@swift-ci please smoke test

@Xazax-hun Xazax-hun merged commit 6e5702b into main Aug 30, 2024
3 checks passed
@Xazax-hun Xazax-hun deleted the gaborh/indirect-enum-case branch August 30, 2024 21:27
Xazax-hun added a commit that referenced this pull request Sep 2, 2024
Explanation: Indirect enum cases can trigger infinite recursion. This PR
stops attempting to export them to C++.
Scope: C++ reverse interop.
Risk: Low, we skip the problematic pattern.
Testing: Regression test added.
Issue: rdar://134852756
Reviewer: @egorzhdan
Original PR: #76167
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++
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants