diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs index d13adfd34b1ce..2994954c3d727 100644 --- a/src/librustc/lib.rs +++ b/src/librustc/lib.rs @@ -29,7 +29,7 @@ This API is completely unstable and subject to change. 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 diff --git a/src/librustc/middle/astencode.rs b/src/librustc/middle/astencode.rs index 424467be86ffc..feef7ffe847de 100644 --- a/src/librustc/middle/astencode.rs +++ b/src/librustc/middle/astencode.rs @@ -41,7 +41,6 @@ use syntax; 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 @@ impl tr for 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)) } diff --git a/src/librustc/middle/def.rs b/src/librustc/middle/def.rs index a17432d8bfa48..1863a19b56d02 100644 --- a/src/librustc/middle/def.rs +++ b/src/librustc/middle/def.rs @@ -12,8 +12,6 @@ use middle::subst::ParamSpace; 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, // 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 @@ impl Def { } DefLocal(id) | DefSelfTy(id) | - DefUpvar(id, _, _, _, _) | + DefUpvar(id, _, _) | DefRegion(id) | DefTyParamBinder(id) | DefLabel(id) => { diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs index cfb4db52eab08..653b24f02558a 100644 --- a/src/librustc/middle/mem_categorization.rs +++ b/src/librustc/middle/mem_categorization.rs @@ -546,7 +546,7 @@ impl<'t,'tcx,TYPER:Typer<'tcx>> MemCategorizationContext<'t,TYPER> { })) } - 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) => { diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index 652b3fc34a7f3..2e198d8afb0fa 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -60,7 +60,6 @@ use syntax::visit::Visitor; 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 @@ impl<'a> Resolver<'a> { 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 @@ impl<'a> Resolver<'a> { 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()); diff --git a/src/librustc/middle/trans/_match.rs b/src/librustc/middle/trans/_match.rs index 9406bc185658b..68d0bb2d8b498 100644 --- a/src/librustc/middle/trans/_match.rs +++ b/src/librustc/middle/trans/_match.rs @@ -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 diff --git a/src/librustc/middle/trans/expr.rs b/src/librustc/middle/trans/expr.rs index 54ed187b503ec..fd063d79b0bb3 100644 --- a/src/librustc/middle/trans/expr.rs +++ b/src/librustc/middle/trans/expr.rs @@ -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) { diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index f62951a85daf3..9676e1515530e 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -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); } diff --git a/src/librustc/middle/typeck/check/regionck.rs b/src/librustc/middle/typeck/check/regionck.rs index 02d45d5168887..2effff4767b02 100644 --- a/src/librustc/middle/typeck/check/regionck.rs +++ b/src/librustc/middle/typeck/check/regionck.rs @@ -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 check_expr_fn_block(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,