Skip to content

Commit 6bc0357

Browse files
committed
Move vec-cycle test
1 parent 275eed7 commit 6bc0357

File tree

2 files changed

+39
-39
lines changed

2 files changed

+39
-39
lines changed

library/alloc/tests/vec.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use std::borrow::Cow;
2+
use std::cell::Cell;
23
use std::collections::TryReserveError::*;
34
use std::fmt::Debug;
45
use std::iter::InPlaceIterable;
@@ -1831,3 +1832,41 @@ fn partialeq_vec_full() {
18311832
assert_partial_eq_valid!(vec2,vec3; array2,array3);
18321833
assert_partial_eq_valid!(vec2,vec3; arrayref2,arrayref3);
18331834
}
1835+
1836+
#[test]
1837+
fn test_vec_cycle() {
1838+
#[derive(Debug)]
1839+
struct C<'a> {
1840+
v: Vec<Cell<Option<&'a C<'a>>>>,
1841+
}
1842+
1843+
impl<'a> C<'a> {
1844+
fn new() -> C<'a> {
1845+
C { v: Vec::new() }
1846+
}
1847+
}
1848+
1849+
let mut c1 = C::new();
1850+
let mut c2 = C::new();
1851+
let mut c3 = C::new();
1852+
1853+
// Push
1854+
c1.v.push(Cell::new(None));
1855+
c1.v.push(Cell::new(None));
1856+
1857+
c2.v.push(Cell::new(None));
1858+
c2.v.push(Cell::new(None));
1859+
1860+
c3.v.push(Cell::new(None));
1861+
c3.v.push(Cell::new(None));
1862+
1863+
// Set
1864+
c1.v[0].set(Some(&c2));
1865+
c1.v[1].set(Some(&c3));
1866+
1867+
c2.v[0].set(Some(&c2));
1868+
c2.v[1].set(Some(&c3));
1869+
1870+
c3.v[0].set(Some(&c1));
1871+
c3.v[1].set(Some(&c2));
1872+
}

src/test/ui/array-slice-vec/vec_cycle.rs

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)