| //@ check-pass | |
| //@ revisions: current next | |
| //@ ignore-compare-mode-next-solver (explicit revisions) | |
| //@[next] compile-flags: -Znext-solver | |
| // Tests that rebasing from the concrete impl to the default impl also processes the | |
| // `[u32; 0]: IntoIterator<Item = ?U>` predicate to constrain the `?U` impl arg. | |
| #![feature(specialization)] | |
| trait Spec { | |
| type Assoc; | |
| } | |
| default impl<T, U> Spec for T where T: IntoIterator<Item = U> { | |
| type Assoc = U; | |
| } | |
| impl<T> Spec for [T; 0] {} | |
| fn main() { | |
| let x: <[u32; 0] as Spec>::Assoc = 1; | |
| } |