2 // aux-build:trait_superkinds_in_metadata.rs
4 // Tests "capabilities" granted by traits with super-builtin-kinds,
5 // even when using them cross-crate.
8 extern crate trait_superkinds_in_metadata;
10 use std::sync::mpsc::{channel, Sender, Receiver};
11 use trait_superkinds_in_metadata::{RequiresRequiresShareAndSend, RequiresShare};
13 #[derive(PartialEq, Debug)]
16 impl <T: Sync> RequiresShare for X<T> { }
17 impl <T: Sync+Send> RequiresRequiresShareAndSend for X<T> { }
19 fn foo<T: RequiresRequiresShareAndSend + 'static>(val: T, chan: Sender<T>) {
20 chan.send(val).unwrap();
24 let (tx, rx): (Sender<X<isize>>, Receiver<X<isize>>) = channel();
26 assert_eq!(rx.recv().unwrap(), X(31337));