about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRenato Zannon <renato@rrsz.com.br>2014-06-09 23:54:52 -0300
committerRenato Zannon <renato@rrsz.com.br>2014-06-09 23:54:52 -0300
commite0855bccd356d191074a83c2aeedabd88d2b7bab (patch)
treeaf5a0e770ad625dc529293a0ee44bb4e891ef703
parent907d96187641d8a018af2b73239723c66b011f71 (diff)
downloadrust-e0855bccd356d191074a83c2aeedabd88d2b7bab.tar.gz
rust-e0855bccd356d191074a83c2aeedabd88d2b7bab.zip
Add a test for nested Arena.alloc
-rw-r--r--src/libarena/lib.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libarena/lib.rs b/src/libarena/lib.rs
index 7e0cda26014..ecf595e45d9 100644
--- a/src/libarena/lib.rs
+++ b/src/libarena/lib.rs
@@ -299,6 +299,20 @@ fn test_arena_destructors() {
 }
 
 #[test]
+fn test_arena_alloc_nested() {
+    struct Inner { value: uint }
+    struct Outer<'a> { inner: &'a Inner }
+
+    let arena = Arena::new();
+
+    let result = arena.alloc(|| Outer {
+        inner: arena.alloc(|| Inner { value: 10 })
+    });
+
+    assert_eq!(result.inner.value, 10);
+}
+
+#[test]
 #[should_fail]
 fn test_arena_destructors_fail() {
     let arena = Arena::new();