| warning: relative drop order changing in Rust 2024 |
| --> $DIR/drop-order-comparisons.rs:79:9 |
| | |
| LL | _ = ({ |
| | _________- |
| LL | | let _v = e.ok(2); |
| | | -- |
| | | | |
| | | `_v` calls a custom destructor |
| | | `_v` will be dropped later as of Edition 2024 |
| LL | | let _v = e.ok(1); |
| | | -- |
| | | | |
| | | this value will be stored in a temporary; let us call it `#2` |
| | | `#2` will be dropped later as of Edition 2024 |
| LL | | e.ok(5).is_ok() |
| | | ^^^^^^^ |
| | | | |
| | | this value will be stored in a temporary; let us call it `#3` |
| | | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 |
| ... | |
| LL | | }, e.mark(3), e.ok(4)); |
| | | - |
| | | | |
| | | now the temporary value is dropped here, before the local variables in the block or statement |
| | |__________________________this value will be stored in a temporary; let us call it `#1` |
| | `#1` will be dropped later as of Edition 2024 |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> |
| note: `#3` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| note: `#1` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| note: `_v` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| note: `#2` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages |
| note: the lint level is defined here |
| --> $DIR/drop-order-comparisons.rs:31:25 |
| | |
| LL | #![cfg_attr(e2021, warn(rust_2024_compatibility))] |
| | ^^^^^^^^^^^^^^^^^^^^^^^ |
| = note: `#[warn(tail_expr_drop_order)]` implied by `#[warn(rust_2024_compatibility)]` |
| |
| warning: relative drop order changing in Rust 2024 |
| --> $DIR/drop-order-comparisons.rs:103:45 |
| | |
| LL | _ = ({ |
| | _________- |
| LL | | (e.ok(2), e.ok(6).is_ok(), e.ok(3), e.ok(5).is_ok()) |
| | | ^^^^^^^ |
| | | | |
| | | this value will be stored in a temporary; let us call it `#2` |
| | | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 |
| ... | |
| LL | | }, e.mark(1), e.ok(4)); |
| | | - |
| | | | |
| | | now the temporary value is dropped here, before the local variables in the block or statement |
| | |__________________________this value will be stored in a temporary; let us call it `#1` |
| | `#1` will be dropped later as of Edition 2024 |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> |
| note: `#2` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| note: `#1` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages |
| |
| warning: relative drop order changing in Rust 2024 |
| --> $DIR/drop-order-comparisons.rs:103:19 |
| | |
| LL | _ = ({ |
| | _________- |
| LL | | (e.ok(2), e.ok(6).is_ok(), e.ok(3), e.ok(5).is_ok()) |
| | | ^^^^^^^ |
| | | | |
| | | this value will be stored in a temporary; let us call it `#2` |
| | | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 |
| ... | |
| LL | | }, e.mark(1), e.ok(4)); |
| | | - |
| | | | |
| | | now the temporary value is dropped here, before the local variables in the block or statement |
| | |__________________________this value will be stored in a temporary; let us call it `#1` |
| | `#1` will be dropped later as of Edition 2024 |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> |
| note: `#2` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| note: `#1` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages |
| |
| warning: relative drop order changing in Rust 2024 |
| --> $DIR/drop-order-comparisons.rs:224:24 |
| | |
| LL | _ = ({ |
| | _________- |
| LL | | if let Ok(_) = e.ok(4).as_ref() { |
| | | ^^^^^^^ |
| | | | |
| | | this value will be stored in a temporary; let us call it `#2` |
| | | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 |
| ... | |
| LL | | }, e.mark(2), e.ok(3)); |
| | | - |
| | | | |
| | | now the temporary value is dropped here, before the local variables in the block or statement |
| | |__________________________this value will be stored in a temporary; let us call it `#1` |
| | `#1` will be dropped later as of Edition 2024 |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> |
| note: `#2` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| note: `#1` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages |
| |
| warning: relative drop order changing in Rust 2024 |
| --> $DIR/drop-order-comparisons.rs:250:24 |
| | |
| LL | _ = ({ |
| | _________- |
| LL | | if let Ok(_) = e.err(4).as_ref() {} else { |
| | | ^^^^^^^^ |
| | | | |
| | | this value will be stored in a temporary; let us call it `#2` |
| | | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 |
| ... | |
| LL | | }, e.mark(2), e.ok(3)); |
| | | - |
| | | | |
| | | now the temporary value is dropped here, before the local variables in the block or statement |
| | |__________________________this value will be stored in a temporary; let us call it `#1` |
| | `#1` will be dropped later as of Edition 2024 |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> |
| note: `#2` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| note: `#1` invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages |
| |
| warning: `if let` assigns a shorter lifetime since Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:126:13 |
| | |
| LL | _ = (if let Ok(_) = e.ok(4).as_ref() { |
| | ^^^^^^^^^^^^-------^^^^^^^^^ |
| | | |
| | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html> |
| note: value invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| help: the value is now dropped here in Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:130:5 |
| | |
| LL | }, e.mark(2), e.ok(3)); |
| | ^ |
| = note: `#[warn(if_let_rescope)]` implied by `#[warn(rust_2024_compatibility)]` |
| help: a `match` with a single arm can preserve the drop order up to Edition 2021 |
| | |
| LL ~ _ = (match e.ok(4).as_ref() { Ok(_) => { |
| LL | |
| LL | |
| LL | e.mark(1); |
| LL ~ } _ => {}}, e.mark(2), e.ok(3)); |
| | |
| |
| warning: `if let` assigns a shorter lifetime since Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:148:13 |
| | |
| LL | _ = (if let Ok(_) = e.err(4).as_ref() {} else { |
| | ^^^^^^^^^^^^--------^^^^^^^^^ |
| | | |
| | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html> |
| note: value invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| help: the value is now dropped here in Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:148:44 |
| | |
| LL | _ = (if let Ok(_) = e.err(4).as_ref() {} else { |
| | ^ |
| help: a `match` with a single arm can preserve the drop order up to Edition 2021 |
| | |
| LL ~ _ = (match e.err(4).as_ref() { Ok(_) => {} _ => { |
| LL | |
| LL | |
| LL | e.mark(1); |
| LL ~ }}, e.mark(2), e.ok(3)); |
| | |
| |
| warning: `if let` assigns a shorter lifetime since Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:250:12 |
| | |
| LL | if let Ok(_) = e.err(4).as_ref() {} else { |
| | ^^^^^^^^^^^^--------^^^^^^^^^ |
| | | |
| | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html> |
| note: value invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| help: the value is now dropped here in Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:250:43 |
| | |
| LL | if let Ok(_) = e.err(4).as_ref() {} else { |
| | ^ |
| help: a `match` with a single arm can preserve the drop order up to Edition 2021 |
| | |
| LL ~ match e.err(4).as_ref() { Ok(_) => {} _ => { |
| LL | |
| ... |
| LL | e.mark(1); |
| LL ~ }} |
| | |
| |
| warning: `if let` assigns a shorter lifetime since Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:321:12 |
| | |
| LL | if let true = e.err(9).is_ok() {} else { |
| | ^^^^^^^^^^^--------^^^^^^^^ |
| | | |
| | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html> |
| note: value invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| help: the value is now dropped here in Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:321:41 |
| | |
| LL | if let true = e.err(9).is_ok() {} else { |
| | ^ |
| help: a `match` with a single arm can preserve the drop order up to Edition 2021 |
| | |
| LL ~ match e.err(9).is_ok() { true => {} _ => { |
| LL | |
| ... |
| LL | e.mark(3); |
| LL ~ }}}}}}}}}; |
| | |
| |
| warning: `if let` assigns a shorter lifetime since Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:324:12 |
| | |
| LL | if let Ok(_v) = e.err(8) {} else { |
| | ^^^^^^^^^^^^^-------- |
| | | |
| | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html> |
| note: value invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| help: the value is now dropped here in Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:324:35 |
| | |
| LL | if let Ok(_v) = e.err(8) {} else { |
| | ^ |
| help: a `match` with a single arm can preserve the drop order up to Edition 2021 |
| | |
| LL ~ match e.err(8) { Ok(_v) => {} _ => { |
| LL | |
| ... |
| LL | e.mark(3); |
| LL ~ }}}}}}}}}; |
| | |
| |
| warning: `if let` assigns a shorter lifetime since Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:327:12 |
| | |
| LL | if let Ok(_) = e.err(7) {} else { |
| | ^^^^^^^^^^^^-------- |
| | | |
| | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html> |
| note: value invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| help: the value is now dropped here in Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:327:34 |
| | |
| LL | if let Ok(_) = e.err(7) {} else { |
| | ^ |
| help: a `match` with a single arm can preserve the drop order up to Edition 2021 |
| | |
| LL ~ match e.err(7) { Ok(_) => {} _ => { |
| LL | |
| ... |
| LL | e.mark(3); |
| LL ~ }}}}}}}}}; |
| | |
| |
| warning: `if let` assigns a shorter lifetime since Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:330:12 |
| | |
| LL | if let Ok(_) = e.err(6).as_ref() {} else { |
| | ^^^^^^^^^^^^--------^^^^^^^^^ |
| | | |
| | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html> |
| note: value invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| help: the value is now dropped here in Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:330:43 |
| | |
| LL | if let Ok(_) = e.err(6).as_ref() {} else { |
| | ^ |
| help: a `match` with a single arm can preserve the drop order up to Edition 2021 |
| | |
| LL ~ match e.err(6).as_ref() { Ok(_) => {} _ => { |
| LL | |
| ... |
| LL | e.mark(3); |
| LL ~ }}}}}}}}}; |
| | |
| |
| warning: `if let` assigns a shorter lifetime since Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:334:12 |
| | |
| LL | if let Ok(_v) = e.err(5) {} else { |
| | ^^^^^^^^^^^^^-------- |
| | | |
| | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html> |
| note: value invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| help: the value is now dropped here in Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:334:35 |
| | |
| LL | if let Ok(_v) = e.err(5) {} else { |
| | ^ |
| help: a `match` with a single arm can preserve the drop order up to Edition 2021 |
| | |
| LL ~ match e.err(5) { Ok(_v) => {} _ => { |
| LL | |
| ... |
| LL | e.mark(3); |
| LL ~ }}}}}}}}}; |
| | |
| |
| warning: `if let` assigns a shorter lifetime since Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:337:12 |
| | |
| LL | if let Ok(_) = e.err(4) {} else { |
| | ^^^^^^^^^^^^-------- |
| | | |
| | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html> |
| note: value invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| help: the value is now dropped here in Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:337:34 |
| | |
| LL | if let Ok(_) = e.err(4) {} else { |
| | ^ |
| help: a `match` with a single arm can preserve the drop order up to Edition 2021 |
| | |
| LL ~ match e.err(4) { Ok(_) => {} _ => { |
| LL | |
| LL | |
| LL | e.mark(3); |
| LL ~ }}}}}}}}}; |
| | |
| |
| warning: `if let` assigns a shorter lifetime since Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:373:12 |
| | |
| LL | if let Ok(_) = e.err(4).as_ref() {} else { |
| | ^^^^^^^^^^^^--------^^^^^^^^^ |
| | | |
| | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion |
| | |
| = warning: this changes meaning in Rust 2024 |
| = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html> |
| note: value invokes this custom destructor |
| --> $DIR/drop-order-comparisons.rs:504:1 |
| | |
| LL | impl<'b> Drop for LogDrop<'b> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| help: the value is now dropped here in Edition 2024 |
| --> $DIR/drop-order-comparisons.rs:373:43 |
| | |
| LL | if let Ok(_) = e.err(4).as_ref() {} else { |
| | ^ |
| help: a `match` with a single arm can preserve the drop order up to Edition 2021 |
| | |
| LL ~ match e.err(4).as_ref() { Ok(_) => {} _ => { |
| LL | |
| LL | |
| LL | e.mark(3); |
| LL ~ }}}}}}}}}; |
| | |
| |
| warning: 15 warnings emitted |
| |