| //@ compile-flags: -Znext-solver |
| //@ check-pass |
| #![feature(rustc_attrs)] |
| #![rustc_no_implicit_bounds] |
| |
| // Regression test for <https://github.com/rust-lang/trait-system-refactor-initiative/issues/171>. |
| // Tests that we don't try to replace `<V as Super>::Output` when replacing projections in the |
| // required bounds for `dyn Trait`, b/c `V` is not relevant to the dyn type, which we were |
| // previously encountering b/c we were walking into the existential projection bounds of the dyn |
| // type itself. |
| |
| pub trait Trait: Super {} |
| |
| pub trait Super { |
| type Output; |
| } |
| |
| fn bound<T: Trait>() {} |
| |
| fn visit_simd_operator<V: Super>() { |
| bound::<dyn Trait<Output = <V as Super>::Output>>(); |
| } |
| |
| fn main() {} |