1
Fork 0

Fix crash with TAIT in the call codegen code

The new logic is closer to what cg_llvm does.

Fixes #1240
This commit is contained in:
bjorn3 2022-12-02 12:44:14 +00:00
parent f73b0b1349
commit 04eaaa043d
4 changed files with 46 additions and 12 deletions

24
example/issue-72793.rs Normal file
View file

@ -0,0 +1,24 @@
// Adapted from rustc ui test suite (ui/type-alias-impl-trait/issue-72793.rs)
#![feature(type_alias_impl_trait)]
trait T { type Item; }
type Alias<'a> = impl T<Item = &'a ()>;
struct S;
impl<'a> T for &'a S {
type Item = &'a ();
}
fn filter_positive<'a>() -> Alias<'a> {
&S
}
fn with_positive(fun: impl Fn(Alias<'_>)) {
fun(filter_positive());
}
fn main() {
with_positive(|_| ());
}