]> git.lizzy.rs Git - rust.git/commitdiff
Move vec-cycle test
authorAlexis Bourget <alexis.bourget@gmail.com>
Thu, 10 Sep 2020 13:41:16 +0000 (15:41 +0200)
committerAlexis Bourget <alexis.bourget@gmail.com>
Mon, 21 Sep 2020 19:50:27 +0000 (21:50 +0200)
library/alloc/tests/vec.rs
src/test/ui/array-slice-vec/vec_cycle.rs [deleted file]

index a49ca7c256a75697ff19c6c7aad7738e730a7cfa..d93de65d3d8d7244fa4a73ea91f79762e4ce3ca4 100644 (file)
@@ -1,4 +1,5 @@
 use std::borrow::Cow;
+use std::cell::Cell;
 use std::collections::TryReserveError::*;
 use std::fmt::Debug;
 use std::iter::InPlaceIterable;
@@ -1831,3 +1832,41 @@ fn partialeq_vec_full() {
     assert_partial_eq_valid!(vec2,vec3; array2,array3);
     assert_partial_eq_valid!(vec2,vec3; arrayref2,arrayref3);
 }
+
+#[test]
+fn test_vec_cycle() {
+    #[derive(Debug)]
+    struct C<'a> {
+        v: Vec<Cell<Option<&'a C<'a>>>>,
+    }
+
+    impl<'a> C<'a> {
+        fn new() -> C<'a> {
+            C { v: Vec::new() }
+        }
+    }
+
+    let mut c1 = C::new();
+    let mut c2 = C::new();
+    let mut c3 = C::new();
+
+    // Push
+    c1.v.push(Cell::new(None));
+    c1.v.push(Cell::new(None));
+
+    c2.v.push(Cell::new(None));
+    c2.v.push(Cell::new(None));
+
+    c3.v.push(Cell::new(None));
+    c3.v.push(Cell::new(None));
+
+    // Set
+    c1.v[0].set(Some(&c2));
+    c1.v[1].set(Some(&c3));
+
+    c2.v[0].set(Some(&c2));
+    c2.v[1].set(Some(&c3));
+
+    c3.v[0].set(Some(&c1));
+    c3.v[1].set(Some(&c2));
+}
diff --git a/src/test/ui/array-slice-vec/vec_cycle.rs b/src/test/ui/array-slice-vec/vec_cycle.rs
deleted file mode 100644 (file)
index 82bce43..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// run-pass
-
-use std::cell::Cell;
-
-#[derive(Debug)]
-struct C<'a> {
-    v: Vec<Cell<Option<&'a C<'a>>>>,
-}
-
-impl<'a> C<'a> {
-    fn new() -> C<'a> {
-        C { v: Vec::new() }
-    }
-}
-
-fn f() {
-    let (mut c1, mut c2, mut c3);
-    c1 = C::new();
-    c2 = C::new();
-    c3 = C::new();
-
-    c1.v.push(Cell::new(None));
-    c1.v.push(Cell::new(None));
-    c2.v.push(Cell::new(None));
-    c2.v.push(Cell::new(None));
-    c3.v.push(Cell::new(None));
-    c3.v.push(Cell::new(None));
-
-    c1.v[0].set(Some(&c2));
-    c1.v[1].set(Some(&c3));
-    c2.v[0].set(Some(&c2));
-    c2.v[1].set(Some(&c3));
-    c3.v[0].set(Some(&c1));
-    c3.v[1].set(Some(&c2));
-}
-
-fn main() {
-    f();
-}