diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-10-17 15:41:38 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-10-17 16:35:33 -0700 |
| commit | 4d9d889dbfcccf324aba268eb6f8069514ed18e7 (patch) | |
| tree | e310c670a134782a3000a42d54a57a754f5a8aa0 /src/comp/middle | |
| parent | 454333368c11a64183cace2456fded9a2cba7749 (diff) | |
Don't allow assignment to mutable-wha?
Diffstat (limited to 'src/comp/middle')
| -rw-r--r-- | src/comp/middle/mut.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/comp/middle/mut.rs b/src/comp/middle/mut.rs index 836f6de87e3..7ba13f3e7c2 100644 --- a/src/comp/middle/mut.rs +++ b/src/comp/middle/mut.rs @@ -49,19 +49,19 @@ fn expr_root(tcx: ty::ctxt, ex: @expr, autoderef: bool) -> alt copy ex.node { expr_field(base, ident) { let auto_unbox = maybe_auto_unbox(tcx, ty::expr_ty(tcx, base)); - let mut = false; + let is_mut = false; alt ty::struct(tcx, auto_unbox.t) { ty::ty_rec(fields) { for fld: ty::field in fields { if str::eq(ident, fld.ident) { - mut = fld.mt.mut != imm; + is_mut = fld.mt.mut == mut; break; } } } ty::ty_obj(_) { } } - ds += [@{mut: mut, kind: field, outer_t: auto_unbox.t}]; + ds += [@{mut: is_mut, kind: field, outer_t: auto_unbox.t}]; ds += auto_unbox.ds; ex = base; } @@ -70,7 +70,7 @@ fn expr_root(tcx: ty::ctxt, ex: @expr, autoderef: bool) -> alt ty::struct(tcx, auto_unbox.t) { ty::ty_vec(mt) { ds += - [@{mut: mt.mut != imm, + [@{mut: mt.mut == mut, kind: index, outer_t: auto_unbox.t}]; } @@ -84,15 +84,15 @@ fn expr_root(tcx: ty::ctxt, ex: @expr, autoderef: bool) -> expr_unary(op, base) { if op == deref { let base_t = ty::expr_ty(tcx, base); - let mut = false; + let is_mut = false; alt ty::struct(tcx, base_t) { - ty::ty_box(mt) { mut = mt.mut != imm; } - ty::ty_uniq(mt) { mut = mt.mut != imm; } + ty::ty_box(mt) { is_mut = mt.mut == mut; } + ty::ty_uniq(mt) { is_mut = mt.mut == mut; } ty::ty_res(_, _, _) { } ty::ty_tag(_, _) { } - ty::ty_ptr(mt) { mut = mt.mut != imm; } + ty::ty_ptr(mt) { is_mut = mt.mut == mut; } } - ds += [@{mut: mut, kind: unbox, outer_t: base_t}]; + ds += [@{mut: is_mut, kind: unbox, outer_t: base_t}]; ex = base; } else { break; } } |
