]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #85020 - lrh2000:named-upvars, r=tmandry
authorbors <bors@rust-lang.org>
Sat, 14 Aug 2021 07:01:36 +0000 (07:01 +0000)
committerbors <bors@rust-lang.org>
Sat, 14 Aug 2021 07:01:36 +0000 (07:01 +0000)
Name the captured upvars for closures/generators in debuginfo

Previously, debuggers print closures as something like
```
y::main::closure-0 (0x7fffffffdd34)
```
The pointer actually references to an upvar. It is not very obvious, especially for beginners.

It's because upvars don't have names before, as they are packed into a tuple. This PR names the upvars, so we can expect to see something like
```
y::main::closure-0 {_captured_ref__b: 0x[...]}
```

r? `@tmandry`
Discussed at https://github.com/rust-lang/rust/pull/84752#issuecomment-831639489 .

1  2 
compiler/rustc_middle/src/query/mod.rs
compiler/rustc_middle/src/ty/closure.rs
compiler/rustc_middle/src/ty/mod.rs
compiler/rustc_mir_build/src/build/mod.rs

Simple merge
index 0d623806eb7e1bddc209fe31ca818729bd7d04be,86a9e47dc53c6f801ee7481ed96187b800fcc87b..b8c3e81aa8fdfccda13faa826625ebd40c240edd
@@@ -15,9 -16,10 +15,9 @@@ use rustc_middle::mir::*
  use rustc_middle::thir::{BindingMode, Expr, ExprId, LintLevel, PatKind, Thir};
  use rustc_middle::ty::subst::Subst;
  use rustc_middle::ty::{self, Ty, TyCtxt, TypeFoldable, TypeckResults};
- use rustc_span::symbol::{kw, sym};
+ use rustc_span::symbol::sym;
  use rustc_span::Span;
  use rustc_target::spec::abi::Abi;
 -use rustc_target::spec::PanicStrategy;
  
  use super::lints;