]> git.lizzy.rs Git - rust.git/commitdiff
auto merge of #8797 : nikomatsakis/rust/issue-8625-assign-to-andmut-in-borrowed-loc...
authorbors <bors@rust-lang.org>
Wed, 28 Aug 2013 00:05:46 +0000 (17:05 -0700)
committerbors <bors@rust-lang.org>
Wed, 28 Aug 2013 00:05:46 +0000 (17:05 -0700)
Fixes for #8625 to prevent assigning to `&mut` in borrowed or aliasable locations. The old code was insufficient in that it failed to catch bizarre cases like `& &mut &mut`.

r? @pnkfelix

1  2 
src/librustc/middle/astencode.rs
src/librustc/middle/borrowck/check_loans.rs
src/librustc/middle/moves.rs
src/librustc/middle/resolve.rs
src/librustc/middle/trans/expr.rs
src/librustc/middle/typeck/check/mod.rs

Simple merge
Simple merge
Simple merge
Simple merge
index a839ea976e62e60a44481aadac5f2b9a315b8556,8f7d8ac186ee60c1f4d495e3ae2b75f6d952f313..0c8f22294244227cce9c8af3c097d2c6163aed61
@@@ -3092,8 -3092,9 +3092,8 @@@ pub fn ty_param_bounds_and_ty_for_def(f
                                        sp: span,
                                        defn: ast::def)
                                     -> ty_param_bounds_and_ty {
 -
      match defn {
-       ast::def_arg(nid, _) | ast::def_local(nid, _) | ast::def_self(nid, _) |
+       ast::def_arg(nid, _) | ast::def_local(nid, _) | ast::def_self(nid) |
        ast::def_binding(nid, _) => {
            let typ = fcx.local_ty(sp, nid);
            return no_params(typ);