diff --git a/src/librustc_mir/tcx/mod.rs b/src/librustc_mir/tcx/mod.rs index 15a49fc9d857..4d034ae23b49 100644 --- a/src/librustc_mir/tcx/mod.rs +++ b/src/librustc_mir/tcx/mod.rs @@ -79,6 +79,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)), },