rust/tests/ui/closures/2229_closure_analysis/run_pass/lit-pattern-matching-with-methods.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

31 lines
836 B
Rust
Raw Normal View History

2021-06-27 01:22:46 -05:00
// edition:2021
//check-pass
#![warn(unused)]
#![feature(rustc_attrs)]
#![feature(btree_extract_if)]
use std::collections::BTreeMap;
use std::panic::{catch_unwind, AssertUnwindSafe};
fn main() {
let mut map = BTreeMap::new();
map.insert("a", ());
map.insert("b", ());
map.insert("c", ());
{
let mut it = map.extract_if(|_, _| true);
catch_unwind(AssertUnwindSafe(|| while it.next().is_some() {})).unwrap_err();
let result = catch_unwind(AssertUnwindSafe(|| it.next()));
assert!(matches!(result, Ok(None)));
}
2021-02-25 17:03:41 -06:00
{
let mut it = map.extract_if(|_, _| true);
2021-02-25 17:03:41 -06:00
catch_unwind(AssertUnwindSafe(|| while let Some(_) = it.next() {})).unwrap_err();
let result = catch_unwind(AssertUnwindSafe(|| it.next()));
assert!(matches!(result, Ok(None)));
}
}