about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Micay <danielmicay@gmail.com>2013-04-22 13:01:32 -0400
committerDaniel Micay <danielmicay@gmail.com>2013-04-22 13:01:32 -0400
commitc99409b332a2bee95e1139c6786c99a06cca9d3b (patch)
tree79bca5400a8bd628054813ae4c9929cbb2f2ce48
parentd0451eebc41d4eaddcc299c868b5ad983e8c8eb9 (diff)
downloadrust-c99409b332a2bee95e1139c6786c99a06cca9d3b.tar.gz
rust-c99409b332a2bee95e1139c6786c99a06cca9d3b.zip
cell: public field is unsafe
use core::cell;

fn main() {
    let x = cell::Cell(Some(~"foo"));
    let y = x.value.get_ref().get_ref();
    do x.with_mut_ref |z| { *z = None; }
    println(*y) // boom!
}
-rw-r--r--src/libcore/cell.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libcore/cell.rs b/src/libcore/cell.rs
index 1707bddc2b9..8c2175eeaca 100644
--- a/src/libcore/cell.rs
+++ b/src/libcore/cell.rs
@@ -20,7 +20,7 @@ Similar to a mutable option type, but friendlier.
 */
 
 pub struct Cell<T> {
-    value: Option<T>
+    priv value: Option<T>
 }
 
 impl<T:cmp::Eq> cmp::Eq for Cell<T> {