]> git.lizzy.rs Git - rust.git/blob - tests/ui/borrowck/issue-29166.rs
Rollup merge of #106321 - compiler-errors:delayed-bug-backtrace, r=Nilstrieb
[rust.git] / tests / ui / borrowck / issue-29166.rs
1 // run-pass
2 // This test ensures that vec.into_iter does not overconstrain element lifetime.
3
4 pub fn main() {
5     original_report();
6     revision_1();
7     revision_2();
8 }
9
10 fn original_report() {
11     drop(vec![&()].into_iter())
12 }
13
14 fn revision_1() {
15     // below is what above `vec!` expands into at time of this writing.
16     drop(<[_]>::into_vec(::std::boxed::Box::new([&()])).into_iter())
17 }
18
19 fn revision_2() {
20     drop((match (Vec::new(), &()) { (mut v, b) => { v.push(b); v } }).into_iter())
21 }