| // Regression test for #29859, initial version. This example allowed | |
| // arbitrary trait bounds to be synthesized. | |
| // Trait that you want all types to implement. | |
| use std::marker::{Sync as Trait}; | |
| pub trait Magic { | |
| type X: Trait; | |
| } | |
| impl<T: Magic> Magic for T { | |
| type X = Self; | |
| //~^ ERROR E0277 | |
| } | |
| fn check<T: Trait>() {} | |
| fn wizard<T: Magic>() { check::<<T as Magic>::X>(); } | |
| fn main() { | |
| wizard::<*mut ()>(); //~ ERROR E0275 | |
| // check::<*mut ()>(); | |
| } |