| #![feature(unsized_fn_params)] | |
| struct A<X: ?Sized>(X); | |
| fn udrop<T: ?Sized>(_x: T) {} | |
| fn foo() -> Box<[u8]> { | |
| Box::new(*b"foo") | |
| } | |
| fn afoo() -> Box<A<[u8]>> { | |
| Box::new(A(*b"foo")) | |
| } | |
| impl std::ops::Add<i32> for A<[u8]> { | |
| type Output = (); | |
| fn add(self, _rhs: i32) -> Self::Output {} | |
| } | |
| fn main() { | |
| udrop::<A<[u8]>>(A { 0: *foo() }); | |
| //~^ERROR E0277 | |
| udrop::<A<[u8]>>(A(*foo())); | |
| //~^ERROR E0277 | |
| } |