| //@ compile-flags: -Znext-solver | |
| //@ check-pass | |
| trait Trivial { | |
| type Assoc; | |
| } | |
| impl<T: ?Sized> 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<for<'a> fn(<&'a () as Trivial>::Assoc)> = None; | |
| } |