rust/compiler/rustc_borrowck
lcnr 8a47b442c4 closure requirements: don't replace bivariant opaque args
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.
2024-12-03 14:07:04 +01:00
..
src closure requirements: don't replace bivariant opaque args 2024-12-03 14:07:04 +01:00
Cargo.toml compiler: Replace rustc_target with _abi in _borrowck 2024-11-02 20:31:47 -07:00
messages.ftl Begin experimental support for pin reborrowing 2024-09-18 12:36:31 -07:00