Skip to content

ABI: unify suppressed associated types mangling#87518

Open
kavon wants to merge 1 commit into
swiftlang:mainfrom
kavon:align-suppassoctypes-mangling-2
Open

ABI: unify suppressed associated types mangling#87518
kavon wants to merge 1 commit into
swiftlang:mainfrom
kavon:align-suppassoctypes-mangling-2

Conversation

@kavon
Copy link
Copy Markdown
Member

@kavon kavon commented Feb 26, 2026

The legacy, experimental SuppressedAssociatedTypes feature never
mangled any inverses into generic signatures of functions, nor mentioned
them in interfaces at all. In the new version of the feature that's been
officially accepted as SE-503, we now do default primary associated
types to be Copyable & Escapable when they're suppressed. And we do mention
the suppressions in the interfaces as needed.

Rather than having the compiler mangle functions in two different ways,
this patch has the compiler be consistent about its mangling and interfaces,
regardless of which feature you're using.

This should mean that a future upgrade from the legacy feature to the
new one won't create an ABI break, only a source break (as expected).

So, an ABI change now before more people use the wrong experimental feature
will make it easier to migrate to the officially-accepted version later on.

rdar://170669869

@kavon
Copy link
Copy Markdown
Member Author

kavon commented Feb 26, 2026

@swift-ci test

@kavon
Copy link
Copy Markdown
Member Author

kavon commented Feb 26, 2026

@swift-ci smoke test windows

@kavon
Copy link
Copy Markdown
Member Author

kavon commented May 20, 2026

@swift-ci test

The legacy, experimental SuppressedAssociatedTypes feature never
mangled any inverses into generic signatures of functions, nor mentioned
them in interfaces at all. In the new version of the feature that's been
officially accepted as SE-503, we now _do_ default primary associated
types to be Copyable & Escapable when they're suppressed. And we do mention
the suppressions in the interfaces as needed.

Rather than having the compiler mangle functions in two different ways,
this patch has the compiler be consistent about its mangling and interfaces,
regardless of which feature you're using.

This should mean that a future upgrade from the legacy feature to the
new one won't create an ABI break, only a source break (as expected).

So, an ABI change now before more people use the wrong experimental feature
will make it easier to migrate to the officially-accepted version later on.

rdar://170669869
@kavon kavon force-pushed the align-suppassoctypes-mangling-2 branch from 1a3ed48 to 387546b Compare May 28, 2026 23:57
@kavon
Copy link
Copy Markdown
Member Author

kavon commented May 28, 2026

@swift-ci test

@kavon kavon requested review from jckarter and tshortli May 29, 2026 00:06
@kavon
Copy link
Copy Markdown
Member Author

kavon commented May 29, 2026

@swift-ci test macOS

@kavon
Copy link
Copy Markdown
Member Author

kavon commented May 29, 2026

#89550
@swift-ci test macOS

@kavon kavon enabled auto-merge May 29, 2026 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant