//! This test checks that walking into binders | |
//! during opaque type collection does not ICE or raise errors. | |
//@ edition: 2021 | |
//@ check-pass | |
#![feature(type_alias_impl_trait)] | |
trait B { | |
type C; | |
} | |
struct A; | |
impl<'a> B for &'a A { | |
type C = (); | |
} | |
struct Terminator; | |
type Successors<'a> = impl std::fmt::Debug + 'a; | |
impl Terminator { | |
fn successors(&self, _: for<'x> fn(&'x ()) -> <&'x A as B>::C) -> Successors<'_> {} | |
} | |
fn main() {} |