1 #![feature(specialization)] //~ WARN the feature `specialization` is incomplete
3 trait Foo: Copy + ToString {}
5 impl<T: Copy + ToString> Foo for T {}
7 fn hide<T: Foo>(x: T) -> impl Foo {
11 fn two(x: bool) -> impl Foo {
16 //~^ ERROR mismatched types
17 //~| expected `i32`, found `u32`
20 fn sum_to(n: u32) -> impl Foo { //~ ERROR type annotations needed
25 //~^ ERROR cannot add `impl Foo` to `u32`
31 fn leak(self) -> Self::T;
35 default fn leak(self) -> Self::T { panic!() }
39 fn leak(self) -> i32 { self }