Skip to content

Implement demangling for #[splat] - #90

Merged
wesleywiser merged 2 commits into
rust-lang:mainfrom
teor2345:splat-mangling
Jul 8, 2026
Merged

Implement demangling for #[splat]#90
wesleywiser merged 2 commits into
rust-lang:mainfrom
teor2345:splat-mangling

Conversation

@teor2345

@teor2345 teor2345 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

This PR implements demangling for splat, and adds tests.

The symbols for the tests are from PR rust-lang/rust#158890, UI tests:

This is part of the splat lang experiment: rust-lang/rust#153629

It is needed to fix symbol clashes between function pointer types, see rust-lang/rust#158644

@wesleywiser
wesleywiser merged commit 53ea128 into rust-lang:main Jul 8, 2026
6 checks passed
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 13, 2026
…rk-Simulacrum

Bump rustc-demangle to 0.1.28

This PR is part of the splat lang experiment: rust-lang#153629

It brings in the changes from rust-lang/rustc-demangle#90, which encode splatted types with a `w` prefix in type mangling. This is required to fix the symbol clashes in rust-lang#158644.

We need to upgrade the compiler and standard library to avoid "can't demangle" panics or errors. Some tools might work without the upgrade, but we might as well do it there as well.

@rustbot label +C-enhancement +F-splat +T-compiler +A-name-mangling
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 13, 2026
…rk-Simulacrum

Bump rustc-demangle to 0.1.28

This PR is part of the splat lang experiment: rust-lang#153629

It brings in the changes from rust-lang/rustc-demangle#90, which encode splatted types with a `w` prefix in type mangling. This is required to fix the symbol clashes in rust-lang#158644.

We need to upgrade the compiler and standard library to avoid "can't demangle" panics or errors. Some tools might work without the upgrade, but we might as well do it there as well.

@rustbot label +C-enhancement +F-splat +T-compiler +A-name-mangling
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 13, 2026
…rk-Simulacrum

Bump rustc-demangle to 0.1.28

This PR is part of the splat lang experiment: rust-lang#153629

It brings in the changes from rust-lang/rustc-demangle#90, which encode splatted types with a `w` prefix in type mangling. This is required to fix the symbol clashes in rust-lang#158644.

We need to upgrade the compiler and standard library to avoid "can't demangle" panics or errors. Some tools might work without the upgrade, but we might as well do it there as well.

@rustbot label +C-enhancement +F-splat +T-compiler +A-name-mangling
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 13, 2026
…rk-Simulacrum

Bump rustc-demangle to 0.1.28

This PR is part of the splat lang experiment: rust-lang#153629

It brings in the changes from rust-lang/rustc-demangle#90, which encode splatted types with a `w` prefix in type mangling. This is required to fix the symbol clashes in rust-lang#158644.

We need to upgrade the compiler and standard library to avoid "can't demangle" panics or errors. Some tools might work without the upgrade, but we might as well do it there as well.

@rustbot label +C-enhancement +F-splat +T-compiler +A-name-mangling
rust-timer added a commit to rust-lang/rust that referenced this pull request Jul 13, 2026
Rollup merge of #159202 - teor2345:bump-rustc-demangle, r=Mark-Simulacrum

Bump rustc-demangle to 0.1.28

This PR is part of the splat lang experiment: #153629

It brings in the changes from rust-lang/rustc-demangle#90, which encode splatted types with a `w` prefix in type mangling. This is required to fix the symbol clashes in #158644.

We need to upgrade the compiler and standard library to avoid "can't demangle" panics or errors. Some tools might work without the upgrade, but we might as well do it there as well.

@rustbot label +C-enhancement +F-splat +T-compiler +A-name-mangling
github-actions Bot pushed a commit to rust-lang/stdarch that referenced this pull request Jul 16, 2026
…crum

Bump rustc-demangle to 0.1.28

This PR is part of the splat lang experiment: rust-lang/rust#153629

It brings in the changes from rust-lang/rustc-demangle#90, which encode splatted types with a `w` prefix in type mangling. This is required to fix the symbol clashes in rust-lang/rust#158644.

We need to upgrade the compiler and standard library to avoid "can't demangle" panics or errors. Some tools might work without the upgrade, but we might as well do it there as well.

@rustbot label +C-enhancement +F-splat +T-compiler +A-name-mangling
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 21, 2026
…esleywiser

Fix splat v0 mangling

Tracking issue: rust-lang#153629

Typecheck considers a splatted and non-splatted function as distinct types, so mangling has to include splatting. If it doesn't, we get symbol clashes. See the ticket and the tests in this PR for details.

Demangling PR: rust-lang/rustc-demangle#90
Demangling in rust-lang/rust PR: rust-lang#159202

@rustbot label +C-bug +F-splat +T-compiler +A-name-mangling

Fixes rust-lang#158644

This PR was based on rust-lang#159202, so we waited for that PR to merge first, then rebased this one.
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Jul 21, 2026
…esleywiser

Fix splat v0 mangling

Tracking issue: rust-lang#153629

Typecheck considers a splatted and non-splatted function as distinct types, so mangling has to include splatting. If it doesn't, we get symbol clashes. See the ticket and the tests in this PR for details.

Demangling PR: rust-lang/rustc-demangle#90
Demangling in rust-lang/rust PR: rust-lang#159202

@rustbot label +C-bug +F-splat +T-compiler +A-name-mangling

Fixes rust-lang#158644

This PR was based on rust-lang#159202, so we waited for that PR to merge first, then rebased this one.
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Jul 21, 2026
…esleywiser

Fix splat v0 mangling

Tracking issue: rust-lang#153629

Typecheck considers a splatted and non-splatted function as distinct types, so mangling has to include splatting. If it doesn't, we get symbol clashes. See the ticket and the tests in this PR for details.

Demangling PR: rust-lang/rustc-demangle#90
Demangling in rust-lang/rust PR: rust-lang#159202

@rustbot label +C-bug +F-splat +T-compiler +A-name-mangling

Fixes rust-lang#158644

This PR was based on rust-lang#159202, so we waited for that PR to merge first, then rebased this one.
jhpratt added a commit to jhpratt/rust that referenced this pull request Jul 22, 2026
…esleywiser

Fix splat v0 mangling

Tracking issue: rust-lang#153629

Typecheck considers a splatted and non-splatted function as distinct types, so mangling has to include splatting. If it doesn't, we get symbol clashes. See the ticket and the tests in this PR for details.

Demangling PR: rust-lang/rustc-demangle#90
Demangling in rust-lang/rust PR: rust-lang#159202

@rustbot label +C-bug +F-splat +T-compiler +A-name-mangling

Fixes rust-lang#158644

This PR was based on rust-lang#159202, so we waited for that PR to merge first, then rebased this one.
jhpratt added a commit to jhpratt/rust that referenced this pull request Jul 22, 2026
…esleywiser

Fix splat v0 mangling

Tracking issue: rust-lang#153629

Typecheck considers a splatted and non-splatted function as distinct types, so mangling has to include splatting. If it doesn't, we get symbol clashes. See the ticket and the tests in this PR for details.

Demangling PR: rust-lang/rustc-demangle#90
Demangling in rust-lang/rust PR: rust-lang#159202

@rustbot label +C-bug +F-splat +T-compiler +A-name-mangling

Fixes rust-lang#158644

This PR was based on rust-lang#159202, so we waited for that PR to merge first, then rebased this one.
rust-timer added a commit to rust-lang/rust that referenced this pull request Jul 22, 2026
Rollup merge of #158890 - teor2345:splat-mangling-clash, r=wesleywiser

Fix splat v0 mangling

Tracking issue: #153629

Typecheck considers a splatted and non-splatted function as distinct types, so mangling has to include splatting. If it doesn't, we get symbol clashes. See the ticket and the tests in this PR for details.

Demangling PR: rust-lang/rustc-demangle#90
Demangling in rust-lang/rust PR: #159202

@rustbot label +C-bug +F-splat +T-compiler +A-name-mangling

Fixes #158644

This PR was based on #159202, so we waited for that PR to merge first, then rebased this one.
pull Bot pushed a commit to xtqqczze/rust-lang-miri that referenced this pull request Jul 22, 2026
Fix splat v0 mangling

Tracking issue: rust-lang/rust#153629

Typecheck considers a splatted and non-splatted function as distinct types, so mangling has to include splatting. If it doesn't, we get symbol clashes. See the ticket and the tests in this PR for details.

Demangling PR: rust-lang/rustc-demangle#90
Demangling in rust-lang/rust PR: rust-lang/rust#159202

@rustbot label +C-bug +F-splat +T-compiler +A-name-mangling

Fixes rust-lang/rust#158644

This PR was based on rust-lang/rust#159202, so we waited for that PR to merge first, then rebased this one.
flip1995 pushed a commit to flip1995/rust that referenced this pull request Jul 23, 2026
…rk-Simulacrum

Bump rustc-demangle to 0.1.28

This PR is part of the splat lang experiment: rust-lang#153629

It brings in the changes from rust-lang/rustc-demangle#90, which encode splatted types with a `w` prefix in type mangling. This is required to fix the symbol clashes in rust-lang#158644.

We need to upgrade the compiler and standard library to avoid "can't demangle" panics or errors. Some tools might work without the upgrade, but we might as well do it there as well.

@rustbot label +C-enhancement +F-splat +T-compiler +A-name-mangling
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.

2 participants