]> git.lizzy.rs Git - rust.git/blob - tests/ui/closures/2229_closure_analysis/migrations/insignificant_drop.rs
Rollup merge of #106726 - cmorin6:fix-comment-typos, r=Nilstrieb
[rust.git] / tests / ui / closures / 2229_closure_analysis / migrations / insignificant_drop.rs
1 // run-pass
2 // run-rustfix
3
4 #![deny(rust_2021_incompatible_closure_captures)]
5 #![allow(unused)]
6
7 // Test cases for types that implement an insignificant drop (stlib defined)
8
9 macro_rules! test_insig_dtor_for_type {
10     ($t: ty, $disambiguator: ident) => {
11         mod $disambiguator {
12             use std::collections::*;
13             use std::rc::Rc;
14             use std::sync::Mutex;
15
16             fn test_for_type(t: $t) {
17                 let tup = (Mutex::new(0), t);
18
19                 let _c = || tup.0;
20             }
21         }
22     };
23 }
24
25 test_insig_dtor_for_type!(i32, prim_i32);
26 test_insig_dtor_for_type!(Vec<i32>, vec_i32);
27 test_insig_dtor_for_type!(String, string);
28 test_insig_dtor_for_type!(Vec<String>, vec_string);
29 test_insig_dtor_for_type!(HashMap<String, String>, hash_map);
30 test_insig_dtor_for_type!(BTreeMap<String, i32>, btree_map);
31 test_insig_dtor_for_type!(LinkedList<String>, linked_list);
32 test_insig_dtor_for_type!(Rc<i32>, rc_i32);
33 test_insig_dtor_for_type!(Rc<String>, rc_string);
34 test_insig_dtor_for_type!(std::vec::IntoIter<String>, vec_into_iter);
35 test_insig_dtor_for_type!(btree_map::IntoIter<String, String>, btree_map_into_iter);
36 test_insig_dtor_for_type!(std::array::IntoIter<String, 5>, array_into_iter);
37
38 fn main() {}