bors 73f14176e3 Auto merge of #10774 - c410-f3r:lock-1, r=Jarcho
[significant_drop_tightening] Fix #10413

Fix #10413

This is quite a rewrite that unfortunately took a  large amount of time. I tried my best to comment what is going on to easy review but feel free to ask any question.

The problem basically is that the current algorithm is only taking into consideration single blocks which means that things like the following don't work or show unpredictable results.

```rust
let mutex = Mutex::new(1);
{
  let lock = mutex.lock().unwrap();
  {
    let _ = *lock;
  }
}
```

The solve the issue, each path that refers a lock is now being tracked individually.

```
changelog: [`significant_drop_tightening`]: Lift the restriction of only considerate single blocks
```
2023-06-30 02:51:15 +00:00
..
2023-06-26 14:13:07 +00:00
2023-06-12 16:21:06 +01:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-20 21:19:58 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-15 07:04:47 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-09 15:32:42 -05:00
2023-06-09 15:32:42 -05:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:04:34 +02:00
2023-06-12 16:04:34 +02:00
2023-06-12 16:04:34 +02:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-09 21:39:58 -04:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-27 05:12:00 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-09 21:39:58 -04:00
2023-06-09 21:39:58 -04:00
2023-06-15 20:23:11 +02:00
2023-06-15 20:23:11 +02:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-28 03:20:21 -05:00
2023-06-28 03:20:21 -05:00
2023-06-27 06:31:04 -05:00
2023-06-27 06:31:04 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-27 06:31:04 -05:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-25 04:28:40 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-12 16:21:06 +01:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-26 14:13:07 +00:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-27 06:31:04 -05:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-27 05:16:40 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-29 09:27:49 -03:00
2023-06-29 09:27:49 -03:00
2023-06-29 09:27:49 -03:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-14 08:41:20 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-12 16:04:34 +02:00
2023-06-12 16:04:34 +02:00
2023-06-12 16:04:34 +02:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00
2023-06-26 14:13:07 +00:00