rbml_w.tag(c::tag_table_upvar_capture_map, |rbml_w| {
rbml_w.id(id);
- let var_id = freevar.def.node_id();
+ let var_id = freevar.def.var_id();
let upvar_id = ty::UpvarId {
var_id: var_id,
closure_expr_id: id
}
impl Def {
- pub fn node_id(&self) -> ast::NodeId {
+ pub fn var_id(&self) -> ast::NodeId {
match *self {
DefLocal(id) |
- DefUpvar(id, _, _) |
- DefRegion(id) |
- DefLabel(id) |
- DefSelfTy(_, Some((_, id))) => {
+ DefUpvar(id, _, _) => {
id
}
- DefFn(_, _) | DefMod(_) | DefForeignMod(_) | DefStatic(_, _) |
- DefVariant(_, _, _) | DefTy(_, _) | DefAssociatedTy(_, _) |
- DefTyParam(_, _, _, _) | DefUse(_) | DefStruct(_) | DefTrait(_) |
- DefMethod(_) | DefConst(_) | DefAssociatedConst(_) |
- DefSelfTy(Some(_), None) | DefPrimTy(_) | DefSelfTy(..) => {
+ DefFn(..) | DefMod(..) | DefForeignMod(..) | DefStatic(..) |
+ DefVariant(..) | DefTy(..) | DefAssociatedTy(..) |
+ DefTyParam(..) | DefUse(..) | DefStruct(..) | DefTrait(..) |
+ DefMethod(..) | DefConst(..) | DefAssociatedConst(..) |
+ DefPrimTy(..) | DefRegion(..) | DefLabel(..) | DefSelfTy(..) => {
panic!("attempted .def_id() on invalid {:?}", self)
}
}
self.tcx().with_freevars(closure_expr.id, |freevars| {
for freevar in freevars {
- let id_var = freevar.def.node_id();
+ let id_var = freevar.def.var_id();
let upvar_id = ty::UpvarId { var_id: id_var,
closure_expr_id: closure_expr.id };
let upvar_capture = self.typer.upvar_capture(upvar_id).unwrap();
-> mc::McResult<mc::cmt<'tcx>> {
// Create the cmt for the variable being borrowed, from the
// caller's perspective
- let var_id = upvar_def.node_id();
+ let var_id = upvar_def.var_id();
let var_ty = try!(self.typer.node_ty(var_id));
self.mc.cat_def(closure_id, closure_span, var_ty, upvar_def)
}
let mut sep = " ";
try!(tcx.with_freevars(node_id, |freevars| {
for (freevar, upvar_ty) in freevars.iter().zip(&substs.upvar_tys) {
- let node_id = freevar.def.node_id();
+ let node_id = freevar.def.var_id();
try!(write!(f,
"{}{}:{}",
sep,
freevar: &ty::Freevar,
freevar_ty: Ty<'tcx>)
-> ExprRef<Cx<'a,'tcx>> {
- let id_var = freevar.def.node_id();
+ let id_var = freevar.def.var_id();
let upvar_id = ty::UpvarId { var_id: id_var, closure_expr_id: closure_expr.id };
let upvar_capture = cx.tcx.upvar_capture(upvar_id).unwrap();
let temp_lifetime = cx.tcx.region_maps.temporary_scope(closure_expr.id);
};
for (i, freevar) in freevars.iter().enumerate() {
- let upvar_id = ty::UpvarId { var_id: freevar.def.node_id(),
+ let upvar_id = ty::UpvarId { var_id: freevar.def.var_id(),
closure_expr_id: bcx.fcx.id };
let upvar_capture = bcx.tcx().upvar_capture(upvar_id).unwrap();
let mut upvar_ptr = StructGEP(bcx, llenv, i);
true
}
};
- let node_id = freevar.def.node_id();
+ let node_id = freevar.def.var_id();
bcx.fcx.llupvars.borrow_mut().insert(node_id, upvar_ptr);
if kind == ty::FnOnceClosureKind && !captured_by_ref {
for (i, freevar) in freevars.iter().enumerate() {
let datum = expr::trans_local_var(bcx, freevar.def);
let upvar_slot_dest = adt::trans_field_ptr(bcx, &*repr, dest_addr, 0, i);
- let upvar_id = ty::UpvarId { var_id: freevar.def.node_id(),
+ let upvar_id = ty::UpvarId { var_id: freevar.def.var_id(),
closure_expr_id: id };
match tcx.upvar_capture(upvar_id).unwrap() {
ty::UpvarCapture::ByValue => {
self.tcx().with_freevars(expr.id, |freevars| {
for freevar in freevars {
- let var_node_id = freevar.def.node_id();
+ let var_node_id = freevar.def.var_id();
let upvar_id = ty::UpvarId { var_id: var_node_id,
closure_expr_id: expr.id };
debug!("seed upvar_id {:?}", upvar_id);
tcx.with_freevars(closure_id, |freevars| {
freevars.iter()
.map(|freevar| {
- let freevar_node_id = freevar.def.node_id();
+ let freevar_node_id = freevar.def.var_id();
let freevar_ty = self.fcx.node_ty(freevar_node_id);
let upvar_id = ty::UpvarId {
var_id: freevar_node_id,