Skip to content

Commit 2e88bec

Browse files
committed
test(bindings_after_at): add dynamic drop tests for bindings_after_at
1 parent 823ff8c commit 2e88bec

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

src/test/ui/drop/dynamic-drop.rs

+48
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#![feature(generators, generator_trait, untagged_unions)]
55
#![feature(move_ref_pattern)]
6+
#![feature(bindings_after_at)]
67

78
#![allow(unused_assignments)]
89
#![allow(unused_variables)]
@@ -291,6 +292,44 @@ fn subslice_mixed_min_lengths(a: &Allocator, c: i32) {
291292
}
292293
}
293294

295+
fn bindings_after_at_dynamic_init_move(a: &Allocator, c: bool) {
296+
let foo = if c { Some(a.alloc()) } else { None };
297+
let _x;
298+
299+
if let bar @ Some(_) = foo {
300+
_x = bar;
301+
}
302+
}
303+
304+
fn bindings_after_at_dynamic_init_ref(a: &Allocator, c: bool) {
305+
let foo = if c { Some(a.alloc()) } else { None };
306+
let _x;
307+
308+
if let bar @ Some(_baz) = &foo {
309+
_x = bar;
310+
}
311+
}
312+
313+
fn bindings_after_at_dynamic_drop_move(a: &Allocator, c: bool) {
314+
let foo = if c { Some(a.alloc()) } else { None };
315+
316+
if let bar @ Some(_) = foo {
317+
bar
318+
} else {
319+
None
320+
};
321+
}
322+
323+
fn bindings_after_at_dynamic_drop_ref(a: &Allocator, c: bool) {
324+
let foo = if c { Some(a.alloc()) } else { None };
325+
326+
if let bar @ Some(_baz) = &foo {
327+
bar
328+
} else {
329+
&None
330+
};
331+
}
332+
294333
fn move_ref_pattern(a: &Allocator) {
295334
let mut tup = (a.alloc(), a.alloc(), a.alloc(), a.alloc());
296335
let (ref _a, ref mut _b, _c, mut _d) = tup;
@@ -471,5 +510,14 @@ fn main() {
471510
run_test(|a| panic_after_init_temp(a));
472511
run_test(|a| panic_after_init_by_loop(a));
473512

513+
run_test(|a| bindings_after_at_dynamic_init_move(a, true));
514+
run_test(|a| bindings_after_at_dynamic_init_move(a, false));
515+
run_test(|a| bindings_after_at_dynamic_init_ref(a, true));
516+
run_test(|a| bindings_after_at_dynamic_init_ref(a, false));
517+
run_test(|a| bindings_after_at_dynamic_drop_move(a, true));
518+
run_test(|a| bindings_after_at_dynamic_drop_move(a, false));
519+
run_test(|a| bindings_after_at_dynamic_drop_ref(a, true));
520+
run_test(|a| bindings_after_at_dynamic_drop_ref(a, false));
521+
474522
run_test_nopanic(|a| union1(a));
475523
}

0 commit comments

Comments
 (0)