diff options
| author | Caio <c410.f3r@gmail.com> | 2023-07-20 09:04:08 -0300 |
|---|---|---|
| committer | Caio <c410.f3r@gmail.com> | 2023-07-20 09:04:08 -0300 |
| commit | f0a16bb8a3ae4ef0ac24cac0f87eb5ca07005d3c (patch) | |
| tree | ce70557583597c1f9aee53d9d9237b9b45deae6e /tests | |
| parent | fca1f9aec544e9b7d6a23827a30d0835a103a124 (diff) | |
| download | rust-f0a16bb8a3ae4ef0ac24cac0f87eb5ca07005d3c.tar.gz rust-f0a16bb8a3ae4ef0ac24cac0f87eb5ca07005d3c.zip | |
[significant_drop_tightening] Fix #11189
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ui/significant_drop_tightening.fixed | 20 | ||||
| -rw-r--r-- | tests/ui/significant_drop_tightening.rs | 20 | ||||
| -rw-r--r-- | tests/ui/significant_drop_tightening.stderr | 6 |
3 files changed, 43 insertions, 3 deletions
diff --git a/tests/ui/significant_drop_tightening.fixed b/tests/ui/significant_drop_tightening.fixed index aa6690b77e1..8065e9e5fbc 100644 --- a/tests/ui/significant_drop_tightening.fixed +++ b/tests/ui/significant_drop_tightening.fixed @@ -58,6 +58,26 @@ pub fn issue_11160() -> bool { true } +pub fn issue_11189() { + struct Number { + pub value: u32, + } + + fn do_something() -> Result<(), ()> { + let number = Mutex::new(Number { value: 1 }); + let number2 = Mutex::new(Number { value: 2 }); + let number3 = Mutex::new(Number { value: 3 }); + let mut lock = number.lock().unwrap(); + let mut lock2 = number2.lock().unwrap(); + let mut lock3 = number3.lock().unwrap(); + lock.value += 1; + lock2.value += 1; + lock3.value += 1; + drop((lock, lock2, lock3)); + Ok(()) + } +} + pub fn path_return_can_be_ignored() -> i32 { let mutex = Mutex::new(1); let lock = mutex.lock().unwrap(); diff --git a/tests/ui/significant_drop_tightening.rs b/tests/ui/significant_drop_tightening.rs index a0bf657df55..1620b76843a 100644 --- a/tests/ui/significant_drop_tightening.rs +++ b/tests/ui/significant_drop_tightening.rs @@ -57,6 +57,26 @@ pub fn issue_11160() -> bool { true } +pub fn issue_11189() { + struct Number { + pub value: u32, + } + + fn do_something() -> Result<(), ()> { + let number = Mutex::new(Number { value: 1 }); + let number2 = Mutex::new(Number { value: 2 }); + let number3 = Mutex::new(Number { value: 3 }); + let mut lock = number.lock().unwrap(); + let mut lock2 = number2.lock().unwrap(); + let mut lock3 = number3.lock().unwrap(); + lock.value += 1; + lock2.value += 1; + lock3.value += 1; + drop((lock, lock2, lock3)); + Ok(()) + } +} + pub fn path_return_can_be_ignored() -> i32 { let mutex = Mutex::new(1); let lock = mutex.lock().unwrap(); diff --git a/tests/ui/significant_drop_tightening.stderr b/tests/ui/significant_drop_tightening.stderr index 45ca73af3a8..b5cad88ad3f 100644 --- a/tests/ui/significant_drop_tightening.stderr +++ b/tests/ui/significant_drop_tightening.stderr @@ -23,7 +23,7 @@ LL + drop(lock); | error: temporary with significant `Drop` can be early dropped - --> $DIR/significant_drop_tightening.rs:86:13 + --> $DIR/significant_drop_tightening.rs:106:13 | LL | / { LL | | let mutex = Mutex::new(1i32); @@ -43,7 +43,7 @@ LL + drop(lock); | error: temporary with significant `Drop` can be early dropped - --> $DIR/significant_drop_tightening.rs:107:13 + --> $DIR/significant_drop_tightening.rs:127:13 | LL | / { LL | | let mutex = Mutex::new(1i32); @@ -67,7 +67,7 @@ LL + | error: temporary with significant `Drop` can be early dropped - --> $DIR/significant_drop_tightening.rs:113:17 + --> $DIR/significant_drop_tightening.rs:133:17 | LL | / { LL | | let mutex = Mutex::new(vec![1i32]); |
