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:
parent
f73b0b1349
commit
04eaaa043d
4 changed files with 46 additions and 12 deletions
24
example/issue-72793.rs
Normal file
24
example/issue-72793.rs
Normal 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(|_| ());
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue