diff options
| author | Michael Woerister <michaelwoerister@posteo> | 2022-10-25 12:28:03 +0200 |
|---|---|---|
| committer | Michael Woerister <michaelwoerister@posteo> | 2022-10-31 15:43:44 +0100 |
| commit | 0cd2dd7263a20ba62591039cd3591c8eaef13878 (patch) | |
| tree | 7a9b322b39dc101763de59789b716dd70cd9c88b /compiler/rustc_codegen_llvm/src | |
| parent | 1481fd964bac3c750c7e1b21206fdaa60346c456 (diff) | |
| download | rust-0cd2dd7263a20ba62591039cd3591c8eaef13878.tar.gz rust-0cd2dd7263a20ba62591039cd3591c8eaef13878.zip | |
[debuginfo] Make debuginfo type names for slices and str consistent.
Before this PR, the compiler would emit the debuginfo name `slice$<T>` for all kinds of slices, regardless of whether they are behind a reference or not and regardless of the kind of reference. As a consequence, the types `Foo<&[T]>`, `Foo<[T]>`, and `Foo<&mut [T]>` would end up with the same type name `Foo<slice$<T> >` in debuginfo, making it impossible to disambiguate between them by name. Similarly, `&str` would get the name `str` in debuginfo, so the debuginfo name for `Foo<str>` and `Foo<&str>` would be the same. In contrast, `*const [bool]` and `*mut [bool]` would be `ptr_const$<slice$<bool> >` and `ptr_mut$<slice$<bool> >`, i.e. the encoding does not lose information about the type. This PR removes all special handling for slices and `str`. The types `&[bool]`, `&mut [bool]`, and `&str` thus get the names `ref$<slice2$<bool> >`, `ref_mut$<slice2$<bool> >`, and `ref$<str$>` respectively -- as one would expect.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
