Skip to content

Commit b396505

Browse files
committed
put file and line into miri backtrace
1 parent fb5135a commit b396505

File tree

2 files changed

+59
-54
lines changed

2 files changed

+59
-54
lines changed

src/librustc/mir/interpret/error.rs

+8-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use backtrace::Backtrace;
2323
use ty::query::TyCtxtAt;
2424
use errors::DiagnosticBuilder;
2525

26-
use syntax_pos::Span;
26+
use syntax_pos::{Pos, Span};
2727
use syntax::ast;
2828
use syntax::symbol::Symbol;
2929

@@ -68,10 +68,15 @@ impl<'tcx> fmt::Display for FrameInfo<'tcx> {
6868
if tcx.def_key(self.instance.def_id()).disambiguated_data.data
6969
== DefPathData::ClosureExpr
7070
{
71-
write!(f, "inside call to closure")
71+
write!(f, "inside call to closure")?;
7272
} else {
73-
write!(f, "inside call to `{}`", self.instance)
73+
write!(f, "inside call to `{}`", self.instance)?;
7474
}
75+
if !self.span.is_dummy() {
76+
let lo = tcx.sess.source_map().lookup_char_pos_adj(self.span.lo());
77+
write!(f, " at {}:{}:{}", lo.filename, lo.line, lo.col.to_usize() + 1)?;
78+
}
79+
Ok(())
7580
})
7681
}
7782
}

src/test/ui/infinite/infinite-recursion-const-fn.stderr

+51-51
Original file line numberDiff line numberDiff line change
@@ -5,61 +5,61 @@ LL | const fn a() -> usize { b() } //~ ERROR evaluation of constant value failed
55
| ^^^
66
| |
77
| reached the configured maximum number of stack frames
8-
| inside call to `b`
8+
| inside call to `b` at $DIR/infinite-recursion-const-fn.rs:13:25
99
LL | const fn b() -> usize { a() }
1010
| ---
1111
| |
12-
| inside call to `a`
13-
| inside call to `a`
14-
| inside call to `a`
15-
| inside call to `a`
16-
| inside call to `a`
17-
| inside call to `a`
18-
| inside call to `a`
19-
| inside call to `a`
20-
| inside call to `a`
21-
| inside call to `a`
22-
| inside call to `a`
23-
| inside call to `a`
24-
| inside call to `a`
25-
| inside call to `a`
26-
| inside call to `a`
27-
| inside call to `a`
28-
| inside call to `a`
29-
| inside call to `a`
30-
| inside call to `a`
31-
| inside call to `a`
32-
| inside call to `a`
33-
| inside call to `a`
34-
| inside call to `a`
35-
| inside call to `a`
36-
| inside call to `a`
37-
| inside call to `a`
38-
| inside call to `a`
39-
| inside call to `a`
40-
| inside call to `a`
41-
| inside call to `a`
42-
| inside call to `a`
43-
| inside call to `a`
44-
| inside call to `a`
45-
| inside call to `a`
46-
| inside call to `a`
47-
| inside call to `a`
48-
| inside call to `a`
49-
| inside call to `a`
50-
| inside call to `a`
51-
| inside call to `a`
52-
| inside call to `a`
53-
| inside call to `a`
54-
| inside call to `a`
55-
| inside call to `a`
56-
| inside call to `a`
57-
| inside call to `a`
58-
| inside call to `a`
59-
| inside call to `a`
60-
| inside call to `a`
12+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
13+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
14+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
15+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
16+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
17+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
18+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
19+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
20+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
21+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
22+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
23+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
24+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
25+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
26+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
27+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
28+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
29+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
30+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
31+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
32+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
33+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
34+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
35+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
36+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
37+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
38+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
39+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
40+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
41+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
42+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
43+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
44+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
45+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
46+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
47+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
48+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
49+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
50+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
51+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
52+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
53+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
54+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
55+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
56+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
57+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
58+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
59+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
60+
| inside call to `a` at $DIR/infinite-recursion-const-fn.rs:14:25
6161
LL | const ARR: [i32; a()] = [5; 6];
62-
| --- inside call to `a`
62+
| --- inside call to `a` at $DIR/infinite-recursion-const-fn.rs:15:18
6363

6464
error: aborting due to previous error
6565

0 commit comments

Comments
 (0)