Rollup merge of #109307 - cjgillot:inline-location, r=compiler-errors
Ignore `Inlined` spans when computing caller location. Fixes https://github.com/rust-lang/rust/issues/105538
This commit is contained in:
commit
3efecba6e7
5 changed files with 37 additions and 5 deletions
|
@ -1475,7 +1475,11 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
|
|||
) -> OperandRef<'tcx, Bx::Value> {
|
||||
let tcx = bx.tcx();
|
||||
|
||||
let mut span_to_caller_location = |span: Span| {
|
||||
let mut span_to_caller_location = |mut span: Span| {
|
||||
// Remove `Inlined` marks as they pollute `expansion_cause`.
|
||||
while span.is_inlined() {
|
||||
span.remove_mark();
|
||||
}
|
||||
let topmost = span.ctxt().outer_expn().expansion_cause().unwrap_or(span);
|
||||
let caller = tcx.sess.source_map().lookup_char_pos(topmost.lo());
|
||||
let const_loc = tcx.const_caller_location((
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue