]> git.lizzy.rs Git - rust.git/commitdiff
Remove irrelevant message about drop order
authorMatthew Jasper <mjjasper1@gmail.com>
Sun, 23 Sep 2018 14:56:14 +0000 (15:56 +0100)
committerMatthew Jasper <mjjasper1@gmail.com>
Sun, 23 Sep 2018 19:27:41 +0000 (20:27 +0100)
When dropping a self-borrowing struct we shouldn't add a "values in a
scope are dropped in the opposite order they are defined" message,
since there is only one value being dropped.

src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs
src/test/ui/dropck/dropck-union.nll.stderr
src/test/ui/span/dropck_direct_cycle_with_drop.nll.stderr
src/test/ui/span/issue28498-reject-ex1.nll.stderr
src/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-1.nll.stderr

index 755148b69925320286c8c95c1efb2f14d48e49c2..f4052f948013ab3971ab7becfdbfdd2cc2c65300 100644 (file)
@@ -143,13 +143,15 @@ pub(in borrow_check) fn explain_why_borrow_contains_point(
             Some(Cause::DropVar(local, location)) => match &mir.local_decls[local].name {
                 Some(local_name) => {
                     let mut should_note_order = false;
-                    if let Some((WriteKind::StorageDeadOrDrop(_), place)) = kind_place {
+                    if let Some((WriteKind::StorageDeadOrDrop, place)) = kind_place {
                         if let Place::Local(borrowed_local) = place {
                             let dropped_local_scope = mir.local_decls[local].visibility_scope;
                             let borrowed_local_scope =
                                 mir.local_decls[*borrowed_local].visibility_scope;
 
-                            if mir.is_sub_scope(borrowed_local_scope, dropped_local_scope) {
+                            if mir.is_sub_scope(borrowed_local_scope, dropped_local_scope)
+                                && local != *borrowed_local
+                            {
                                 should_note_order = true;
                             }
                         }
index 35d7ffc7879eda17de606b49ce2c53cff0615646..ffb322b85dc34232d46ced6e0748bc4de5db078d 100644 (file)
@@ -8,8 +8,6 @@ LL | }
    | |
    | `v` dropped here while still borrowed
    | borrow later used here, when `v` is dropped
-   |
-   = note: values in a scope are dropped in the opposite order they are defined
 
 error: aborting due to previous error
 
index 2884b1818baa9cf23801cd1e28dbc4f393af7543..baf3cef2ae83c84a211c1da1b6614c715ac2e579 100644 (file)
@@ -23,8 +23,6 @@ LL | }
    | |
    | `d1` dropped here while still borrowed
    | borrow later used here, when `d1` is dropped
-   |
-   = note: values in a scope are dropped in the opposite order they are defined
 
 error: aborting due to 2 previous errors
 
index 1f72b78ebc76d371b3d89581dfcb2b8c68b53b8f..0f6f6e381d801e681e826be0f7d6fa3c6c9887c3 100644 (file)
@@ -11,7 +11,6 @@ LL | }
    | borrow later used here, when `foo` is dropped
    |
    = note: consider using a `let` binding to create a longer lived value
-   = note: values in a scope are dropped in the opposite order they are defined
 
 error: aborting due to previous error
 
index 8cda1e60ba988284ddee1bdca2558c03d0e82da5..afd90237d16aee165d1c1b21092908bce203d592 100644 (file)
@@ -11,8 +11,6 @@ LL | }
    | |
    | `factorial` dropped here while still borrowed
    | borrow later used here, when `factorial` is dropped
-   |
-   = note: values in a scope are dropped in the opposite order they are defined
 
 error[E0506]: cannot assign to `factorial` because it is borrowed
   --> $DIR/unboxed-closures-failed-recursive-fn-1.rs:30:5