diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-11-12 16:56:39 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-11-12 17:09:52 -0800 |
| commit | 5b248a6ca8962249d5882375610764a6dd9561c3 (patch) | |
| tree | dc78b1e5cf835a008f2ada3851d89d2d7c7d301d /src/libsyntax | |
| parent | 385a4668e568e4379371bf065d071f6caf6d1c3a (diff) | |
| download | rust-5b248a6ca8962249d5882375610764a6dd9561c3.tar.gz rust-5b248a6ca8962249d5882375610764a6dd9561c3.zip | |
Remove CodeMap box typedef from codemap
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/codemap.rs | 40 | ||||
| -rw-r--r-- | src/libsyntax/diagnostic.rs | 18 | ||||
| -rw-r--r-- | src/libsyntax/ext/base.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/parse.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/parse/lexer.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 6 |
6 files changed, 39 insertions, 37 deletions
diff --git a/src/libsyntax/codemap.rs b/src/libsyntax/codemap.rs index 2583cc036a3..a616e73e549 100644 --- a/src/libsyntax/codemap.rs +++ b/src/libsyntax/codemap.rs @@ -86,19 +86,21 @@ impl filemap { } } -struct CodeMap_ { +struct CodeMap { files: DVec<@filemap> } -type CodeMap = @CodeMap_; - struct loc { file: @filemap, line: uint, col: uint } -fn new_codemap() -> CodeMap { @CodeMap_ {files: DVec()} } +fn new_codemap() -> CodeMap { + CodeMap { + files: DVec() + } +} -fn mk_substr_filename(cm: CodeMap, sp: span) -> ~str +fn mk_substr_filename(cm: @CodeMap, sp: span) -> ~str { let pos = lookup_char_pos(cm, sp.lo); return fmt!("<%s:%u:%u>", pos.file.name, pos.line, pos.col); @@ -110,7 +112,7 @@ fn next_line(file: @filemap, chpos: uint, byte_pos: uint) { type lookup_fn = pure fn(file_pos) -> uint; -fn lookup_line(map: CodeMap, pos: uint, lookup: lookup_fn) +fn lookup_line(map: @CodeMap, pos: uint, lookup: lookup_fn) -> {fm: @filemap, line: uint} { let len = map.files.len(); @@ -133,22 +135,22 @@ fn lookup_line(map: CodeMap, pos: uint, lookup: lookup_fn) return {fm: f, line: a}; } -fn lookup_pos(map: CodeMap, pos: uint, lookup: lookup_fn) -> loc { +fn lookup_pos(map: @CodeMap, pos: uint, lookup: lookup_fn) -> loc { let {fm: f, line: a} = lookup_line(map, pos, lookup); return loc {file: f, line: a + 1u, col: pos - lookup(f.lines[a])}; } -fn lookup_char_pos(map: CodeMap, pos: uint) -> loc { +fn lookup_char_pos(map: @CodeMap, pos: uint) -> loc { pure fn lookup(pos: file_pos) -> uint { return pos.ch; } return lookup_pos(map, pos, lookup); } -fn lookup_byte_pos(map: CodeMap, pos: uint) -> loc { +fn lookup_byte_pos(map: @CodeMap, pos: uint) -> loc { pure fn lookup(pos: file_pos) -> uint { return pos.byte; } return lookup_pos(map, pos, lookup); } -fn lookup_char_pos_adj(map: CodeMap, pos: uint) +fn lookup_char_pos_adj(map: @CodeMap, pos: uint) -> {filename: ~str, line: uint, col: uint, file: Option<@filemap>} { let loc = lookup_char_pos(map, pos); @@ -171,7 +173,7 @@ fn lookup_char_pos_adj(map: CodeMap, pos: uint) } } -fn adjust_span(map: CodeMap, sp: span) -> span { +fn adjust_span(map: @CodeMap, sp: span) -> span { pure fn lookup(pos: file_pos) -> uint { return pos.ch; } let line = lookup_line(map, sp.lo, lookup); match (line.fm.substr) { @@ -210,14 +212,14 @@ impl<D: Deserializer> span: Deserializable<D> { } } -fn span_to_str_no_adj(sp: span, cm: CodeMap) -> ~str { +fn span_to_str_no_adj(sp: span, cm: @CodeMap) -> ~str { let lo = lookup_char_pos(cm, sp.lo); let hi = lookup_char_pos(cm, sp.hi); return fmt!("%s:%u:%u: %u:%u", lo.file.name, lo.line, lo.col, hi.line, hi.col) } -fn span_to_str(sp: span, cm: CodeMap) -> ~str { +fn span_to_str(sp: span, cm: @CodeMap) -> ~str { let lo = lookup_char_pos_adj(cm, sp.lo); let hi = lookup_char_pos_adj(cm, sp.hi); return fmt!("%s:%u:%u: %u:%u", lo.filename, @@ -229,12 +231,12 @@ struct file_lines { lines: ~[uint] } -fn span_to_filename(sp: span, cm: codemap::CodeMap) -> filename { +fn span_to_filename(sp: span, cm: @codemap::CodeMap) -> filename { let lo = lookup_char_pos(cm, sp.lo); return /* FIXME (#2543) */ copy lo.file.name; } -fn span_to_lines(sp: span, cm: codemap::CodeMap) -> @file_lines { +fn span_to_lines(sp: span, cm: @codemap::CodeMap) -> @file_lines { let lo = lookup_char_pos(cm, sp.lo); let hi = lookup_char_pos(cm, sp.hi); let mut lines = ~[]; @@ -253,7 +255,7 @@ fn get_line(fm: @filemap, line: int) -> ~str unsafe { str::slice(*fm.src, begin, end) } -fn lookup_byte_offset(cm: codemap::CodeMap, chpos: uint) +fn lookup_byte_offset(cm: @codemap::CodeMap, chpos: uint) -> {fm: @filemap, pos: uint} { pure fn lookup(pos: file_pos) -> uint { return pos.ch; } let {fm, line} = lookup_line(cm, chpos, lookup); @@ -263,20 +265,20 @@ fn lookup_byte_offset(cm: codemap::CodeMap, chpos: uint) {fm: fm, pos: line_offset + col_offset} } -fn span_to_snippet(sp: span, cm: codemap::CodeMap) -> ~str { +fn span_to_snippet(sp: span, cm: @codemap::CodeMap) -> ~str { let begin = lookup_byte_offset(cm, sp.lo); let end = lookup_byte_offset(cm, sp.hi); assert begin.fm.start_pos == end.fm.start_pos; return str::slice(*begin.fm.src, begin.pos, end.pos); } -fn get_snippet(cm: codemap::CodeMap, fidx: uint, lo: uint, hi: uint) -> ~str +fn get_snippet(cm: @codemap::CodeMap, fidx: uint, lo: uint, hi: uint) -> ~str { let fm = cm.files[fidx]; return str::slice(*fm.src, lo, hi) } -fn get_filemap(cm: CodeMap, filename: ~str) -> @filemap { +fn get_filemap(cm: @CodeMap, filename: ~str) -> @filemap { for cm.files.each |fm| { if fm.name == filename { return *fm; } } //XXjdm the following triggers a mismatched type bug // (or expected function, found _|_) diff --git a/src/libsyntax/diagnostic.rs b/src/libsyntax/diagnostic.rs index 855b0ca3ef5..9335faed0c9 100644 --- a/src/libsyntax/diagnostic.rs +++ b/src/libsyntax/diagnostic.rs @@ -9,7 +9,7 @@ export codemap_span_handler, codemap_handler; export ice_msg; export expect; -type emitter = fn@(cmsp: Option<(codemap::CodeMap, span)>, +type emitter = fn@(cmsp: Option<(@codemap::CodeMap, span)>, msg: &str, lvl: level); @@ -33,7 +33,7 @@ trait handler { fn note(msg: &str); fn bug(msg: &str) -> !; fn unimpl(msg: &str) -> !; - fn emit(cmsp: Option<(codemap::CodeMap, span)>, msg: &str, lvl: level); + fn emit(cmsp: Option<(@codemap::CodeMap, span)>, msg: &str, lvl: level); } type handler_t = @{ @@ -43,7 +43,7 @@ type handler_t = @{ type codemap_t = @{ handler: handler, - cm: codemap::CodeMap + cm: @codemap::CodeMap }; impl codemap_t: span_handler { @@ -107,7 +107,7 @@ impl handler_t: handler { self.fatal(ice_msg(msg)); } fn unimpl(msg: &str) -> ! { self.bug(~"unimplemented " + msg); } - fn emit(cmsp: Option<(codemap::CodeMap, span)>, msg: &str, lvl: level) { + fn emit(cmsp: Option<(@codemap::CodeMap, span)>, msg: &str, lvl: level) { self.emit(cmsp, msg, lvl); } } @@ -116,7 +116,7 @@ fn ice_msg(msg: &str) -> ~str { fmt!("internal compiler error: %s", msg) } -fn mk_span_handler(handler: handler, cm: codemap::CodeMap) -> span_handler { +fn mk_span_handler(handler: handler, cm: @codemap::CodeMap) -> span_handler { @{ handler: handler, cm: cm } as span_handler } @@ -125,7 +125,7 @@ fn mk_handler(emitter: Option<emitter>) -> handler { let emit = match emitter { Some(e) => e, None => { - let f = fn@(cmsp: Option<(codemap::CodeMap, span)>, + let f = fn@(cmsp: Option<(@codemap::CodeMap, span)>, msg: &str, t: level) { emit(cmsp, msg, t); }; @@ -189,7 +189,7 @@ fn print_diagnostic(topic: ~str, lvl: level, msg: &str) { io::stderr().write_str(fmt!(" %s\n", msg)); } -fn emit(cmsp: Option<(codemap::CodeMap, span)>, msg: &str, lvl: level) { +fn emit(cmsp: Option<(@codemap::CodeMap, span)>, msg: &str, lvl: level) { match cmsp { Some((cm, sp)) => { let sp = codemap::adjust_span(cm,sp); @@ -205,7 +205,7 @@ fn emit(cmsp: Option<(codemap::CodeMap, span)>, msg: &str, lvl: level) { } } -fn highlight_lines(cm: codemap::CodeMap, sp: span, +fn highlight_lines(cm: @codemap::CodeMap, sp: span, lines: @codemap::file_lines) { let fm = lines.file; @@ -260,7 +260,7 @@ fn highlight_lines(cm: codemap::CodeMap, sp: span, } } -fn print_macro_backtrace(cm: codemap::CodeMap, sp: span) { +fn print_macro_backtrace(cm: @codemap::CodeMap, sp: span) { do option::iter(&sp.expn_info) |ei| { let ss = option::map_default(&ei.callie.span, @~"", |span| @codemap::span_to_str(*span, cm)); diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index f588a6390d5..ffed726f1f8 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -125,7 +125,7 @@ fn syntax_expander_table() -> HashMap<~str, syntax_extension> { // when a macro expansion occurs, the resulting nodes have the backtrace() // -> expn_info of their expansion context stored into their span. trait ext_ctxt { - fn codemap() -> CodeMap; + fn codemap() -> @CodeMap; fn parse_sess() -> parse::parse_sess; fn cfg() -> ast::crate_cfg; fn print_backtrace(); @@ -157,7 +157,7 @@ fn mk_ctxt(parse_sess: parse::parse_sess, mut mod_path: ~[ast::ident], mut trace_mac: bool}; impl ctxt_repr: ext_ctxt { - fn codemap() -> CodeMap { self.parse_sess.cm } + fn codemap() -> @CodeMap { self.parse_sess.cm } fn parse_sess() -> parse::parse_sess { self.parse_sess } fn cfg() -> ast::crate_cfg { self.cfg } fn print_backtrace() { } diff --git a/src/libsyntax/parse.rs b/src/libsyntax/parse.rs index 9547d7a1d13..f93be9c7266 100644 --- a/src/libsyntax/parse.rs +++ b/src/libsyntax/parse.rs @@ -23,7 +23,7 @@ use parse::token::{ident_interner, mk_ident_interner}; use codemap::filemap; type parse_sess = @{ - cm: codemap::CodeMap, + cm: @codemap::CodeMap, mut next_id: node_id, span_diagnostic: span_handler, interner: @ident_interner, @@ -33,7 +33,7 @@ type parse_sess = @{ }; fn new_parse_sess(demitter: Option<emitter>) -> parse_sess { - let cm = codemap::new_codemap(); + let cm = @codemap::new_codemap(); return @{cm: cm, mut next_id: 1, span_diagnostic: mk_span_handler(mk_handler(demitter), cm), @@ -41,7 +41,7 @@ fn new_parse_sess(demitter: Option<emitter>) -> parse_sess { mut chpos: 0u, mut byte_pos: 0u}; } -fn new_parse_sess_special_handler(sh: span_handler, cm: codemap::CodeMap) +fn new_parse_sess_special_handler(sh: span_handler, cm: @codemap::CodeMap) -> parse_sess { return @{cm: cm, mut next_id: 1, diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs index a56f2576ab1..f3e84a0cbf8 100644 --- a/src/libsyntax/parse/lexer.rs +++ b/src/libsyntax/parse/lexer.rs @@ -232,7 +232,7 @@ fn consume_any_line_comment(rdr: string_reader) } } else if rdr.curr == '#' { if nextch(rdr) == '!' { - let cmap = codemap::new_codemap(); + let cmap = @codemap::new_codemap(); (*cmap).files.push(rdr.filemap); let loc = codemap::lookup_char_pos_adj(cmap, rdr.chpos); if loc.line == 1u && loc.col == 0u { diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 0418f6776de..2bf9b826d6f 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -25,7 +25,7 @@ fn no_ann() -> pp_ann { type ps = @{s: pp::printer, - cm: Option<CodeMap>, + cm: Option<@CodeMap>, intr: @token::ident_interner, comments: Option<~[comments::cmnt]>, literals: Option<~[comments::lit]>, @@ -46,7 +46,7 @@ fn end(s: ps) { fn rust_printer(writer: io::Writer, intr: @ident_interner) -> ps { return @{s: pp::mk_printer(writer, default_columns), - cm: None::<CodeMap>, + cm: None::<@CodeMap>, intr: intr, comments: None::<~[comments::cmnt]>, literals: None::<~[comments::lit]>, @@ -64,7 +64,7 @@ const default_columns: uint = 78u; // Requires you to pass an input filename and reader so that // it can scan the input text for comments and literals to // copy forward. -fn print_crate(cm: CodeMap, intr: @ident_interner, +fn print_crate(cm: @CodeMap, intr: @ident_interner, span_diagnostic: diagnostic::span_handler, crate: @ast::crate, filename: ~str, in: io::Reader, out: io::Writer, ann: pp_ann, is_expanded: bool) { |
