rustc_mir: create the let
and "remainder" scopes in source order.
This commit is contained in:
parent
9260305c9e
commit
c3ca9a35be
6 changed files with 11 additions and 10 deletions
|
@ -505,14 +505,15 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> {
|
|||
UserTypeProjections::none(),
|
||||
&mut |this, mutability, name, mode, var, span, ty, user_ty| {
|
||||
if visibility_scope.is_none() {
|
||||
visibility_scope =
|
||||
Some(this.new_source_scope(scope_span, LintLevel::Inherited, None));
|
||||
// If we have lints, create a new source scope
|
||||
// that marks the lints for the locals. See the comment
|
||||
// on the `source_info` field for why this is needed.
|
||||
if lint_level.is_explicit() {
|
||||
scope = this.new_source_scope(scope_span, lint_level, None);
|
||||
}
|
||||
visibility_scope = Some(this.new_source_scope(scope_span,
|
||||
LintLevel::Inherited,
|
||||
None));
|
||||
}
|
||||
let source_info = SourceInfo { span, scope };
|
||||
let visibility_scope = visibility_scope.unwrap();
|
||||
|
|
|
@ -26,9 +26,9 @@ impl Drop for S {
|
|||
// let mut _3: ();
|
||||
// let mut _4: std::boxed::Box<S>;
|
||||
// scope 1 {
|
||||
// let _1: std::boxed::Box<S>;
|
||||
// }
|
||||
// scope 2 {
|
||||
// let _1: std::boxed::Box<S>;
|
||||
// }
|
||||
// bb0: {
|
||||
// StorageLive(_1);
|
||||
|
|
|
@ -34,9 +34,9 @@ impl S {
|
|||
// let mut _4: S;
|
||||
// let mut _5: bool;
|
||||
// scope 1 {
|
||||
// let _1: ();
|
||||
// }
|
||||
// scope 2 {
|
||||
// let _1: ();
|
||||
// }
|
||||
// ...
|
||||
// bb0: {
|
||||
|
@ -48,9 +48,9 @@ impl S {
|
|||
// let mut _5: S;
|
||||
// let mut _6: bool;
|
||||
// ...
|
||||
// let mut _2: S;
|
||||
// ...
|
||||
// let _1: S;
|
||||
// ...
|
||||
// let mut _2: S;
|
||||
// ...
|
||||
// bb0: {
|
||||
// END rustc.test.ElaborateDrops.after.mir
|
||||
|
|
|
@ -23,9 +23,9 @@ fn main() {
|
|||
// let mut _5: ();
|
||||
// let mut _6: &i32;
|
||||
// scope 1 {
|
||||
// let _2: i32;
|
||||
// }
|
||||
// scope 2 {
|
||||
// let _2: i32;
|
||||
// }
|
||||
// bb0: {
|
||||
// goto -> bb1;
|
||||
|
|
|
@ -27,10 +27,10 @@ fn main() {
|
|||
// | '_#4r | U0 | {bb2[4..=5], bb3[0..=1]}
|
||||
// END rustc.main.nll.0.mir
|
||||
// START rustc.main.nll.0.mir
|
||||
// let _6: &'_#4r usize;
|
||||
// ...
|
||||
// let _2: &'_#3r usize;
|
||||
// ...
|
||||
// let _6: &'_#4r usize;
|
||||
// ...
|
||||
// _2 = &'_#2r _1[_3];
|
||||
// ...
|
||||
// _6 = _2;
|
||||
|
|
|
@ -24,9 +24,9 @@ impl Drop for Droppy {
|
|||
// let mut _5: Droppy;
|
||||
// let mut _6: Aligned;
|
||||
// scope 1 {
|
||||
// let mut _1: Packed;
|
||||
// }
|
||||
// scope 2 {
|
||||
// let mut _1: Packed;
|
||||
// }
|
||||
//
|
||||
// bb0: {
|
||||
|
|
Loading…
Reference in a new issue