mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-22 02:00:00 +03:00
rustc_mir: create the let and "remainder" scopes in source order.
This commit is contained in:
@@ -505,14 +505,15 @@ pub fn declare_bindings(
|
||||
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 @@ fn drop(&mut self) {
|
||||
// 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 @@ fn other(self, s: Self) {}
|
||||
// let mut _4: S;
|
||||
// let mut _5: bool;
|
||||
// scope 1 {
|
||||
// let _1: ();
|
||||
// }
|
||||
// scope 2 {
|
||||
// let _1: ();
|
||||
// }
|
||||
// ...
|
||||
// bb0: {
|
||||
@@ -48,9 +48,9 @@ fn other(self, s: Self) {}
|
||||
// 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 @@ fn drop(&mut self) {}
|
||||
// let mut _5: Droppy;
|
||||
// let mut _6: Aligned;
|
||||
// scope 1 {
|
||||
// let mut _1: Packed;
|
||||
// }
|
||||
// scope 2 {
|
||||
// let mut _1: Packed;
|
||||
// }
|
||||
//
|
||||
// bb0: {
|
||||
|
||||
Reference in New Issue
Block a user