// Regression test for rust-lang/rust#63154 // // Before, we would ICE after failing to normalize the destination type // when checking call destinations and also when checking MIR // assignment statements. //@ check-pass trait HasAssocType { type Inner; } impl HasAssocType for () { type Inner = (); } trait Tr: Fn(I) -> Option {} impl Option> Tr for Q {} fn f() -> impl Tr { |_| None } fn g(f: impl Tr) -> impl Tr { f } fn h() { g(f())(()); } fn main() { h(); }