From 21720641dc4d3b921eb5be2a4c66900003a742dd Mon Sep 17 00:00:00 2001 From: Andrew Cann Date: Thu, 18 Aug 2016 23:30:11 +0800 Subject: [PATCH] Factor write_ty out of check_expr_closure --- src/librustc_typeck/check/closure.rs | 4 +--- src/librustc_typeck/check/mod.rs | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/librustc_typeck/check/closure.rs b/src/librustc_typeck/check/closure.rs index 1f4201aa39c..9e41d1b5676 100644 --- a/src/librustc_typeck/check/closure.rs +++ b/src/librustc_typeck/check/closure.rs @@ -70,8 +70,6 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { self.parameter_environment.free_substs, upvar_tys); - let ty = self.write_ty(expr.id, closure_type); - let fn_sig = self.tcx.liberate_late_bound_regions( self.tcx.region_maps.call_site_extent(expr.id, body.id), &fn_ty.sig); let fn_sig = @@ -94,7 +92,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { None => { } } - ty + closure_type } fn deduce_expectations_from_expected_type(&self, expected_ty: Ty<'tcx>) diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index f70d7c57748..4c400f1092c 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -3531,7 +3531,8 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { self.write_ty(expr.id, result_ty) } hir::ExprClosure(capture, ref decl, ref body, _) => { - self.check_expr_closure(expr, capture, &decl, &body, expected) + let ty = self.check_expr_closure(expr, capture, &decl, &body, expected); + self.write_ty(id, ty) } hir::ExprBlock(ref b) => { self.check_block_with_expected(&b, expected);