// run-pass // Tests the ability for the Self type in default methods to use // capabilities granted by builtin kinds as supertraits. use std::sync::mpsc::{Sender, channel}; trait Foo : Send + Sized + 'static { fn foo(self, tx: Sender) { tx.send(self).unwrap(); } } impl Foo for T { } pub fn main() { let (tx, rx) = channel(); 1193182.foo(tx); assert_eq!(rx.recv().unwrap(), 1193182); }