// compile-flags: -Ztrait-solver=next // check-pass trait Trivial { type Assoc; } impl Trivial for T { type Assoc = (); } fn main() { // During writeback, we call `normalize_erasing_regions`, which will walk past // the `for<'a>` binder and try to normalize `<&'a () as Trivial>::Assoc` directly. // We need to handle this case in the new deep normalizer similarly to how it // is handled in the old solver. let x: Option fn(<&'a () as Trivial>::Assoc)> = None; }