about summary refs log tree commit diff
path: root/src/test/run-pass/writealias.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/run-pass/writealias.rs')
-rw-r--r--src/test/run-pass/writealias.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/test/run-pass/writealias.rs b/src/test/run-pass/writealias.rs
index 7e2229e78ea..8f990e07015 100644
--- a/src/test/run-pass/writealias.rs
+++ b/src/test/run-pass/writealias.rs
@@ -9,15 +9,20 @@
 // except according to those terms.
 
 
+use std::unstable;
 
-
-// -*- rust -*-
 struct Point {x: int, y: int, z: int}
 
 fn f(p: &mut Point) { p.z = 13; }
 
 pub fn main() {
-    let mut x: Point = Point {x: 10, y: 11, z: 12};
-    f(&mut x);
-    assert_eq!(x.z, 13);
+    unsafe {
+        let x = Some(unstable::sync::exclusive(true));
+        match x {
+            Some(ref z) if z.with(|b| *b) => {
+                do z.with |b| { assert!(*b); }
+            },
+            _ => fail!()
+        }
+    }
 }