]> git.lizzy.rs Git - rust.git/commitdiff
rustc: remove Gc<Def> and depth from DefUpvar.
authorEduard Burtescu <edy.burt@gmail.com>
Sun, 14 Sep 2014 22:22:50 +0000 (01:22 +0300)
committerEduard Burtescu <edy.burt@gmail.com>
Thu, 18 Sep 2014 11:36:36 +0000 (14:36 +0300)
src/librustc/lib.rs
src/librustc/middle/astencode.rs
src/librustc/middle/def.rs
src/librustc/middle/mem_categorization.rs
src/librustc/middle/resolve.rs
src/librustc/middle/trans/_match.rs
src/librustc/middle/trans/expr.rs
src/librustc/middle/typeck/check/mod.rs
src/librustc/middle/typeck/check/regionck.rs

index d13adfd34b1ce0e088c1cba9f2cea58570ee9347..2994954c3d72726c64a5e6788caecb0a34babf6f 100644 (file)
@@ -29,7 +29,7 @@
       html_root_url = "http://doc.rust-lang.org/master/")]
 
 #![allow(deprecated)]
-#![feature(macro_rules, globs, struct_variant, managed_boxes, quote)]
+#![feature(macro_rules, globs, struct_variant, quote)]
 #![feature(default_type_params, phase, unsafe_destructor)]
 
 #![allow(unknown_features)] // NOTE: Remove after next snapshot
index 424467be86ffcd96de4510ca043e5c4f12d7d83d..feef7ffe847def1f9bedfc37deac0de1a09458d1 100644 (file)
@@ -41,7 +41,6 @@
 use libc;
 use std::io::Seek;
 use std::mem;
-use std::gc::GC;
 use std::rc::Rc;
 
 use rbml::io::SeekableMemWriter;
@@ -471,10 +470,8 @@ fn tr(&self, dcx: &DecodeContext) -> def::Def {
           def::DefPrimTy(p) => def::DefPrimTy(p),
           def::DefTyParam(s, did, v) => def::DefTyParam(s, did.tr(dcx), v),
           def::DefUse(did) => def::DefUse(did.tr(dcx)),
-          def::DefUpvar(nid1, def, depth, nid2, nid3) => {
+          def::DefUpvar(nid1, nid2, nid3) => {
             def::DefUpvar(dcx.tr_id(nid1),
-                           box(GC) (*def).tr(dcx),
-                           depth,
                            dcx.tr_id(nid2),
                            dcx.tr_id(nid3))
           }
index a17432d8bfa48f63b83340727c73cc8d4872710d..1863a19b56d02ad462992580a00b7b1c49a423b4 100644 (file)
@@ -12,8 +12,6 @@
 use syntax::ast;
 use syntax::ast_util::local_def;
 
-use std::gc::Gc;
-
 #[deriving(Clone, PartialEq, Eq, Encodable, Decodable, Hash, Show)]
 pub enum Def {
     DefFn(ast::DefId, ast::FnStyle),
@@ -31,8 +29,6 @@ pub enum Def {
     DefTyParam(ParamSpace, ast::DefId, uint),
     DefUse(ast::DefId),
     DefUpvar(ast::NodeId,  // id of closed over local
-             Gc<Def>,      // closed over def
-             u32,          // number of closures implicitely capturing this local
              ast::NodeId,  // expr node that creates the closure
              ast::NodeId), // block node for the closest enclosing proc
                            // or unboxed closure, DUMMY_NODE_ID otherwise
@@ -70,7 +66,7 @@ pub fn def_id(&self) -> ast::DefId {
             }
             DefLocal(id) |
             DefSelfTy(id) |
-            DefUpvar(id, _, _, _,  _) |
+            DefUpvar(id, _, _) |
             DefRegion(id) |
             DefTyParamBinder(id) |
             DefLabel(id) => {
index cfb4db52eab08d02da10c3d218b073b6569b234c..653b24f02558a51467f3c2877de5290afbddcdde 100644 (file)
@@ -546,7 +546,7 @@ pub fn cat_def(&self,
               }))
           }
 
-          def::DefUpvar(var_id, _, _, fn_node_id, _) => {
+          def::DefUpvar(var_id, fn_node_id, _) => {
               let ty = if_ok!(self.node_ty(fn_node_id));
               match ty::get(ty).sty {
                   ty::ty_closure(ref closure_ty) => {
index 652b3fc34a7f3ba8947c34e855126871ad46414b..2e198d8afb0fa829ae63cfa95c595dabe7af3b78 100644 (file)
@@ -60,7 +60,6 @@
 
 use std::collections::{HashMap, HashSet};
 use std::cell::{Cell, RefCell};
-use std::gc::GC;
 use std::mem::replace;
 use std::rc::{Rc, Weak};
 use std::uint;
@@ -3849,7 +3848,6 @@ fn upvarify(&self,
             DlDef(d @ DefLocal(_)) => {
                 let node_id = d.def_id().node;
                 let mut def = d;
-                let mut depth = 0;
                 let mut last_proc_body_id = ast::DUMMY_NODE_ID;
                 for rib in ribs.iter() {
                     match rib.kind {
@@ -3861,9 +3859,7 @@ fn upvarify(&self,
                             if maybe_proc_body != ast::DUMMY_NODE_ID {
                                 last_proc_body_id = maybe_proc_body;
                             }
-                            def = DefUpvar(node_id, box(GC) def,
-                                           depth, function_id, last_proc_body_id);
-                            depth += 1;
+                            def = DefUpvar(node_id, function_id, last_proc_body_id);
 
                             let mut seen = self.freevars_seen.borrow_mut();
                             let seen = seen.find_or_insert(function_id, NodeSet::new());
index 9406bc185658b8b74d1558f9a2f53526ddf4c3cb..68d0bb2d8b49805220a6e796172a7d989c31eed6 100644 (file)
@@ -1226,7 +1226,7 @@ pub fn trans_match<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
 fn is_discr_reassigned(bcx: Block, discr: &ast::Expr, body: &ast::Expr) -> bool {
     match discr.node {
         ast::ExprPath(..) => match bcx.def(discr.id) {
-            def::DefLocal(vid) | def::DefUpvar(vid, _, _, _, _) => {
+            def::DefLocal(vid) | def::DefUpvar(vid, _, _) => {
                 let mut rc = ReassignmentChecker {
                     node: vid,
                     reassigned: false
index 54ed187b503ec0eb6f8559579d9440abcd22a661..fd063d79b0bb3fbb32f47681e14e3ea539ec32b9 100644 (file)
@@ -1176,7 +1176,7 @@ pub fn trans_local_var<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
     let _icx = push_ctxt("trans_local_var");
 
     match def {
-        def::DefUpvar(nid, _, _, _, _) => {
+        def::DefUpvar(nid, _, _) => {
             // Can't move upvars, so this is never a ZeroMemLastUse.
             let local_ty = node_id_type(bcx, nid);
             match bcx.fcx.llupvars.borrow().find(&nid) {
index f62951a85daf32a58b26cf6e4c86b80175cf1365..9676e1515530e707a110b60c6f233128cff6a605 100644 (file)
@@ -5026,7 +5026,7 @@ pub fn polytype_for_def(fcx: &FnCtxt,
                         defn: def::Def)
                         -> Polytype {
     match defn {
-      def::DefLocal(nid) | def::DefUpvar(nid, _, _, _, _) => {
+      def::DefLocal(nid) | def::DefUpvar(nid, _, _) => {
           let typ = fcx.local_ty(sp, nid);
           return no_params(typ);
       }
index 02d45d51688874ff7616b747bef7e5fe01456f7b..2effff4767b02a6bdb4080e0031e155a029c7b8c 100644 (file)
@@ -244,7 +244,7 @@ fn region_of_def(fcx: &FnCtxt, def: def::Def) -> ty::Region {
         def::DefLocal(node_id) => {
             tcx.region_maps.var_region(node_id)
         }
-        def::DefUpvar(node_id, _, _, _, body_id) => {
+        def::DefUpvar(node_id, _, body_id) => {
             if body_id == ast::DUMMY_NODE_ID {
                 tcx.region_maps.var_region(node_id)
             } else {
@@ -1029,7 +1029,7 @@ fn propagate_upupvar_borrow_kind(rcx: &mut Rcx,
             // determining the final borrow_kind) and propagate that as
             // a constraint on the outer closure.
             match freevar.def {
-                def::DefUpvar(var_id, _, _, outer_closure_id, _) => {
+                def::DefUpvar(var_id, outer_closure_id, _) => {
                     // thing being captured is itself an upvar:
                     let outer_upvar_id = ty::UpvarId {
                         var_id: var_id,