| //@ 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<Self>) { | |
| tx.send(self).unwrap(); | |
| } | |
| } | |
| impl <T: Send + 'static> Foo for T { } | |
| pub fn main() { | |
| let (tx, rx) = channel(); | |
| 1193182.foo(tx); | |
| assert_eq!(rx.recv().unwrap(), 1193182); | |
| } |