Skip to content

Commit

Permalink
Add "trace-macros" as a compiler flag
Browse files Browse the repository at this point in the history
Fixes #22619
  • Loading branch information
Thomas Jespersen committed Apr 14, 2015
1 parent e6a8124 commit d14109e
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 5 deletions.
4 changes: 3 additions & 1 deletion src/librustc/session/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -606,6 +606,8 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
"Force overflow checks on or off"),
force_dropflag_checks: Option<bool> = (None, parse_opt_bool,
"Force drop flag checks on or off"),
trace_macros: bool = (false, parse_bool,
"For every macro invocation, print its name and arguments"),
}

pub fn default_lib_output() -> CrateType {
Expand Down Expand Up @@ -667,7 +669,7 @@ pub fn build_target_config(opts: &Options, sp: &SpanHandler) -> Config {
Ok(t) => t,
Err(e) => {
sp.handler().fatal(&format!("Error loading target specification: {}", e));
}
}
};

let (int_type, uint_type) = match &target.target_pointer_width[..] {
Expand Down
1 change: 1 addition & 0 deletions src/librustc_driver/driver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -482,6 +482,7 @@ pub fn phase_2_configure_and_expand(sess: &Session,
crate_name: crate_name.to_string(),
features: Some(&features),
recursion_limit: sess.recursion_limit.get(),
trace_mac: sess.opt.debugging_opts.trace_macros,
};
let ret = syntax::ext::expand::expand_crate(&sess.parse_sess,
cfg,
Expand Down
6 changes: 2 additions & 4 deletions src/libsyntax/ext/base.rs
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,6 @@ pub struct ExtCtxt<'a> {
pub use_std: bool,

pub mod_path: Vec<ast::Ident> ,
pub trace_mac: bool,
pub exported_macros: Vec<ast::MacroDef>,

pub syntax_env: SyntaxEnv,
Expand All @@ -572,7 +571,6 @@ impl<'a> ExtCtxt<'a> {
mod_path: Vec::new(),
ecfg: ecfg,
use_std: true,
trace_mac: false,
exported_macros: Vec::new(),
syntax_env: env,
recursion_count: 0,
Expand Down Expand Up @@ -732,10 +730,10 @@ impl<'a> ExtCtxt<'a> {
self.parse_sess.span_diagnostic.handler().bug(msg);
}
pub fn trace_macros(&self) -> bool {
self.trace_mac
self.ecfg.trace_mac
}
pub fn set_trace_macros(&mut self, x: bool) {
self.trace_mac = x
self.ecfg.trace_mac = x
}
pub fn ident_of(&self, st: &str) -> ast::Ident {
str_to_ident(st)
Expand Down
2 changes: 2 additions & 0 deletions src/libsyntax/ext/expand.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1406,6 +1406,7 @@ pub struct ExpansionConfig<'feat> {
pub crate_name: String,
pub features: Option<&'feat Features>,
pub recursion_limit: usize,
pub trace_mac: bool,
}

macro_rules! feature_tests {
Expand All @@ -1427,6 +1428,7 @@ impl<'feat> ExpansionConfig<'feat> {
crate_name: crate_name,
features: None,
recursion_limit: 64,
trace_mac: false,
}
}

Expand Down

0 comments on commit d14109e

Please sign in to comment.