parent
7c8f503ac5
commit
6c4c5f5631
@ -76,8 +76,26 @@ pub fn expand_expr(extsbox: @mut SyntaxEnv,
|
||||
// mark before:
|
||||
let marked_before = mark_tts(*tts,fm);
|
||||
let marked_ctxt = new_mark(fm, ctxt);
|
||||
|
||||
// The span that we pass to the expanders we want to
|
||||
// be the root of the call stack. That's the most
|
||||
// relevant span and it's the actual invocation of
|
||||
// the macro.
|
||||
let mut relevant_info = cx.backtrace();
|
||||
let mut einfo = relevant_info.unwrap();
|
||||
loop {
|
||||
match relevant_info {
|
||||
None => { break }
|
||||
Some(e) => {
|
||||
einfo = e;
|
||||
relevant_info = einfo.call_site.expn_info;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let expanded =
|
||||
match expandfun(cx, mac.span, marked_before, marked_ctxt) {
|
||||
match expandfun(cx, einfo.call_site,
|
||||
marked_before, marked_ctxt) {
|
||||
MRExpr(e) => e,
|
||||
MRAny(expr_maker,_,_) => expr_maker(),
|
||||
_ => {
|
||||
|
13
src/test/compile-fail/debug-correct-span.rs
Normal file
13
src/test/compile-fail/debug-correct-span.rs
Normal file
@ -0,0 +1,13 @@
|
||||
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
fn main() {
|
||||
debug!("%s %s", 3); //~ ERROR: not enough arguments
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user