diff --git a/src/comp/middle/mut.rs b/src/comp/middle/mut.rs index 6ac17db4209..802fbbe7e40 100644 --- a/src/comp/middle/mut.rs +++ b/src/comp/middle/mut.rs @@ -86,7 +86,7 @@ fn expr_root(tcx: ty::ctxt, ex: @expr, autoderef: bool) -> let mut = false; alt ty::struct(tcx, base_t) { ty::ty_box(mt) { mut = mt.mut != imm; } - ty::ty_uniq(_) { } + ty::ty_uniq(mt) { mut = mt.mut != imm; } ty::ty_res(_, _, _) { } ty::ty_tag(_, _) { } ty::ty_ptr(mt) { mut = mt.mut != imm; } diff --git a/src/test/run-pass/unique-mutable.rs b/src/test/run-pass/unique-mutable.rs new file mode 100644 index 00000000000..ef3b818c9f6 --- /dev/null +++ b/src/test/run-pass/unique-mutable.rs @@ -0,0 +1,5 @@ +fn main() { + let i = ~mutable 0; + *i = 1; + assert *i == 1; +} \ No newline at end of file