diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-12-04 05:42:08 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-04 05:42:08 +0100 |
| commit | 9fd097267728ee85190aadb07ecc1a11b2a48697 (patch) | |
| tree | 9ccc55dbcf5bd1cf534b2dec394de5123b3e2ad6 /compiler/rustc_codegen_llvm/src | |
| parent | 45088fdf68b3a9b6e68c736f9e1cf4ee933fa46a (diff) | |
| parent | 1c96ddde11ad3ef054228322ed144742cecb8643 (diff) | |
| download | rust-9fd097267728ee85190aadb07ecc1a11b2a48697.tar.gz rust-9fd097267728ee85190aadb07ecc1a11b2a48697.zip | |
Rollup merge of #133798 - lcnr:nested-bodies-opaques, r=compiler-errors
stop replacing bivariant args with `'static` when computing closure requirements It is unnecessary, these get constrained when checking that the opaque type is well-formed. It also results in the opaque type no longer being well formed. If you've got `fn foo<'a>() -> impl Sized + 'a` the opaque is `type Opaque<'a, 'aDummy> where 'a: 'aDummy, 'aDummy: 'a` where `'aDummy` is bivariant. If we call `foo::<'b>()` inside of a closure and its return type ends up in a type test, we start out with the WF `Opaque<'b, 'b>`, and then replace the bivariant `'b` with `'static`. `Opaque<'b, 'static>` is no longer well-formed. Given how these type tests are used, I don't think this caused any practical issues. r? types
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
