about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-09-20 06:43:38 +0200
committerGitHub <noreply@github.com>2024-09-20 06:43:38 +0200
commitb963750b6bd3fb9a70c3835e7e8e8b69716576b4 (patch)
treedc0b8ad30dbd6bf191784f6160766c18a2a9e9e1 /compiler/rustc_codegen_llvm/src
parent5793a9e90289382e447f5bc411cab2bc01c5836f (diff)
parent87bc2f77eab510c85275d8c2f50b5022e7534e83 (diff)
downloadrust-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