//@ run-pass #![allow(internal_features, unused_braces, unused_parens)] #![feature(unsized_fn_params)] struct A(#[allow(dead_code)] X); fn udrop(_x: T) {} fn foo() -> Box<[u8]> { Box::new(*b"foo") } fn afoo() -> Box> { Box::new(A(*b"foo")) } impl std::ops::Add for A<[u8]> { type Output = (); fn add(self, _rhs: i32) -> Self::Output {} } fn main() { udrop::<[u8]>((*foo())); *afoo() + 42; udrop as fn([u8]); }