Closed
Description
zz.rs
macro_rules! twice(
($a:expr) => ($a + $a);
)
macro_rules! twice_one(
($b:expr) => (1 + twice!($b) + 1);
)
fn main() {
twice_one!(10);
}
result
#rustc --pretty expanded zz.rs
priv use std::prelude::*;
priv extern mod std;
mod __std_macros {
#[macro_escape];
#[doc(hidden)];
priv use std::prelude::*;
#[cfg(not(debug))]
#[macro_escape]
mod debug_macro {
priv use std::prelude::*;
}
}
fn main() { 1 + 10 + 10 + 1; }
zz-1.rs
macro_rules! twice(
($a:expr) => ($a + $a);
)
macro_rules! twice_one(
($b:expr) => (twice!($b) + 1);
)
fn main() {
twice_one!(10);
}
result
#rustc --pretty expanded zz-1.rs
priv use std::prelude::*;
priv extern mod std;
mod __std_macros {
#[macro_escape];
#[doc(hidden)];
priv use std::prelude::*;
#[cfg(not(debug))]
#[macro_escape]
mod debug_macro {
priv use std::prelude::*;
}
}
fn main() { 10 + 10; }
result is different