On Tue, Apr 09, 2013 at 10:07:36PM -0400, Ashish Myles wrote:
> Hi,
> 
> I am running the rust compiler from trunk. My macro usage seems to be a
> 
> ----
> macro_rules! my_print(
>     ($a:expr, $b:expr) => (
>         io::println(fmt!("%d", a));
>         io::println(fmt!("%d", b));
>     );
> )
> 
> fn main() {
>     let a : int = 1;
>     let b : int = 2;
>     my_print!(a, b);
> }
> ----
> 
> Compiling with "rustc tmp.rs" gives the following suspicious warning
> 
> ----
> tmp.rs:10:8: 10:11 warning: unused variable: `b`
> tmp.rs:10     let b : int = 2;
> ----
> 
> and ./tmp prints only "1".  Running "rustc tmp.rs --pretty expanded"
> shows below that the second line "io::println(fmt!("%d", b));" was
> ignored.
> 
> ----
> fn main() {
>     let a: int = 1;
>     let b: int = 2;
>     io::println({
>                     let mut __fmtbuf = ~"";
> 
> ::unstable::extfmt::rt::conv_int(::unstable::extfmt::rt::Conv{flags:
> 
>                ::unstable::extfmt::rt::flag_none,
> 
>            width:
> 
>                ::unstable::extfmt::rt::CountImplied,
> 
>            precision:
> 
>                ::unstable::extfmt::rt::CountImplied,
> 
>            ty:
> 
>                ::unstable::extfmt::rt::TyDefault,},
>                                                      a, &mut __fmtbuf);
>                     __fmtbuf
>                 });
> }
> ----
> 
> Can someone point me in the right direction here?

Currently, macros can only expand to a single item. See
https://github.com/mozilla/rust/issues/4375 for more details.

-doy
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to