diff --git a/src/librustc_mir/tcx/mod.rs b/src/librustc_mir/tcx/mod.rs index 3b9d9228a16..65667f6420c 100644 --- a/src/librustc_mir/tcx/mod.rs +++ b/src/librustc_mir/tcx/mod.rs @@ -78,6 +78,8 @@ impl<'tcx> LvalueTy<'tcx> { adt_def.struct_variant().fields[field.index()].ty(tcx, substs), ty::TyTuple(ref tys) => tys[field.index()], + ty::TyClosure(_, ref closure_substs) => + closure_substs.upvar_tys[field.index()], _ => tcx.sess.bug(&format!("cannot get field of type: `{:?}`", ty)), },