1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
//@ known-bug: #134587 use std::ops::Add; pub fn foo<T>(slf: *const T) where *const T: Add, { slf + slf; } pub fn foo2<T>(slf: *const T) where *const T: Add<u8>, { slf + 1_u8; } pub trait TimesTwo where *const Self: Add<*const Self>, { extern "C" fn t2_ptr(slf: *const Self) -> <*const Self as Add<*const Self>>::Output { slf + slf } }