stdlib: Use spans for #fmt errors originating in std

Issue #444
This commit is contained in:
Brian Anderson 2011-06-04 18:23:06 -04:00
parent a177dc485b
commit 53ea2a4751
5 changed files with 34 additions and 11 deletions

View file

@ -28,11 +28,17 @@ fn expand_syntax_ext(&ext_ctxt cx,
}
auto fmt = expr_to_str(cx, args.(0));
auto fmtspan = args.(0).span;
log "Format string:";
log fmt;
auto pieces = parse_fmt_string(fmt);
fn parse_fmt_err_(&ext_ctxt cx, common::span sp, str msg) -> ! {
cx.span_err(sp, msg);
}
auto parse_fmt_err = bind parse_fmt_err_(cx, fmtspan, _);
auto pieces = parse_fmt_string(fmt, parse_fmt_err);
auto args_len = vec::len[@ast::expr](args);
auto fmt_args = vec::slice[@ast::expr](args, 1u, args_len - 1u);
ret pieces_to_expr(cx, sp, pieces, args);