Skip to content

Commit 1e4de33

Browse files
committed
rustc: Exclude stdin from codemap files when lookup_pos
Fixes issue #1362
1 parent 085c813 commit 1e4de33

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/comp/syntax/codemap.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,17 @@ type lookup_fn = fn(file_pos) -> uint;
3535

3636
fn lookup_pos(map: codemap, pos: uint, lookup: lookup_fn) -> loc {
3737
let len = vec::len(map.files);
38+
if len > 1u && map.files[len - 1u].name == "-" {
39+
// the trailing "-" must be the core_macros inserted by expand_crate,
40+
// exclude it from the targets to lookup
41+
len = len - 1u;
42+
}
3843
let a = 0u;
3944
let b = len;
4045
while b - a > 1u {
4146
let m = (a + b) / 2u;
4247
if lookup(map.files[m].start_pos) > pos { b = m; } else { a = m; }
4348
}
44-
if (a >= len) {
45-
ret { filename: "-", line: 0u, col: 0u };
46-
}
4749
let f = map.files[a];
4850
a = 0u;
4951
b = vec::len(f.lines);

0 commit comments

Comments
 (0)