diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-09-20 06:43:38 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-20 06:43:38 +0200 |
| commit | b963750b6bd3fb9a70c3835e7e8e8b69716576b4 (patch) | |
| tree | dc0b8ad30dbd6bf191784f6160766c18a2a9e9e1 /compiler/rustc_codegen_llvm/src | |
| parent | 5793a9e90289382e447f5bc411cab2bc01c5836f (diff) | |
| parent | 87bc2f77eab510c85275d8c2f50b5022e7534e83 (diff) | |
| download | rust-b963750b6bd3fb9a70c3835e7e8e8b69716576b4.tar.gz rust-b963750b6bd3fb9a70c3835e7e8e8b69716576b4.zip | |
Rollup merge of #130485 - compiler-errors:impossible-types, r=BoxyUwU
Do not expect infer/bound/placeholder/error in v0 symbol mangling
Infer/bound/placeholder/error are not encounterable during codegen. Let's make sure v0 symbol mangling doesn't "accidentally" handle them.
As for aliases (namely: projections and uv consts) these may still be encounterable because of the way that we render the def paths of items. Specifically, when we have something like:
```
struct W<T>(T);
impl<T> W<T> {
fn x() {
fn y() {}
}
}
```
The path of `y` is rendered like `crate_name::W<T>::x::y`. Specifically, since `y` doesn't inherit the generics of the impl, we use the *identity* substitutions for that impl. If the impl has any aliases, they will remain unnormalized if they're rigid.
r? `@BoxyUwU`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
