12 do_bar(int) -> barbar,
13 do_baz(bool) -> bazbar,
27 macro_rules! select_if {
32 $($message:path$(($($x: ident),+))dont_type_this*
33 -> $next:ident $e:expr),+
36 $($messages:path$(($($xs: ident),+))dont_type_this*
37 -> $nexts:ident $es:expr),+
40 log_syntax!{select_if1};
42 alt move pipes::try_recv($port) {
43 $(some($message($($($x,)+)* next)) => {
44 // FIXME (#2329) we really want move out of enum here.
45 let $next = unsafe { let x <- *ptr::addr_of(next); x };
55 $($messages$(($($xs),+))dont_type_this*
66 log_syntax!{select_if2};
74 $($message:path$(($($x: ident),+))dont_type_this*
75 -> $next:ident $e:expr),+
78 let index = pipes::selecti([$(($port).header()),+]/_);
81 select_if!{index, 0, $( $port => [
82 $($message$(($($x),+))dont_type_this* -> $next $e),+
85 select_if!{index, 0, $( $port => [
86 $($message$(($($x),+))dont_type_this* -> $next $e),+
92 fn test(+foo: foo::client::foo, +bar: bar::client::bar) {
95 foo::do_foo -> _next {
100 bar::do_bar(x) -> _next {
105 //if b { debug!("true") } else { debug!("false") }