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-12-04 05:42:08 +0100
committerGitHub <noreply@github.com>2024-12-04 05:42:08 +0100
commit9fd097267728ee85190aadb07ecc1a11b2a48697 (patch)
tree9ccc55dbcf5bd1cf534b2dec394de5123b3e2ad6 /compiler/rustc_codegen_llvm/src
parent45088fdf68b3a9b6e68c736f9e1cf4ee933fa46a (diff)
parent1c96ddde11ad3ef054228322ed144742cecb8643 (diff)
downloadrust-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