diff options
| author | Michael Goulet <michael@errs.io> | 2025-02-22 22:05:48 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2025-02-24 18:31:50 +0000 |
| commit | bab03bf1768fea8512ece42dea6d66f6f4743145 (patch) | |
| tree | af787f4b79f30a8211018bae679c7ec51f57437d /tests/ui/drop | |
| parent | 617aad8c2e8783f6df8e5d1f8bb1e4bcdc70aa7b (diff) | |
| download | rust-bab03bf1768fea8512ece42dea6d66f6f4743145.tar.gz rust-bab03bf1768fea8512ece42dea6d66f6f4743145.zip | |
Improve behavior of IF_LET_RESCOPE around temporaries and place expressions
Diffstat (limited to 'tests/ui/drop')
| -rw-r--r-- | tests/ui/drop/lint-if-let-rescope-false-positives.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/ui/drop/lint-if-let-rescope-false-positives.rs b/tests/ui/drop/lint-if-let-rescope-false-positives.rs new file mode 100644 index 00000000000..533d0f2f982 --- /dev/null +++ b/tests/ui/drop/lint-if-let-rescope-false-positives.rs @@ -0,0 +1,29 @@ +//@ edition: 2021 +//@ check-pass + +#![deny(if_let_rescope)] + +struct Drop; +impl std::ops::Drop for Drop { + fn drop(&mut self) { + println!("drop") + } +} + +impl Drop { + fn as_ref(&self) -> Option<i32> { + Some(1) + } +} + +fn consume(_: impl Sized) -> Option<i32> { Some(1) } + +fn main() { + let drop = Drop; + + // Make sure we don't drop if we don't actually make a temporary. + if let None = drop.as_ref() {} else {} + + // Make sure we don't lint if we consume the droppy value. + if let None = consume(Drop) {} else {} +} |
