From 2ea6094938a5ba4b0fa0f263bf458f81eaea264b Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Wed, 12 Jun 2019 11:47:48 -0400 Subject: [PATCH] explain why pick-constraints can be an empty vector --- src/librustc_mir/borrow_check/nll/type_check/mod.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/librustc_mir/borrow_check/nll/type_check/mod.rs b/src/librustc_mir/borrow_check/nll/type_check/mod.rs index ea7db309644..9b7a62ba764 100644 --- a/src/librustc_mir/borrow_check/nll/type_check/mod.rs +++ b/src/librustc_mir/borrow_check/nll/type_check/mod.rs @@ -2514,7 +2514,14 @@ fn prove_closure_bounds( if let Some(closure_region_requirements) = tcx.mir_borrowck(def_id).closure_requirements { let closure_constraints = QueryRegionConstraints { outlives: closure_region_requirements.apply_requirements(tcx, def_id, substs), - pick_constraints: vec![], // TODO + + // Presently, closures never propagate pick + // constraints to their parents -- they are enforced + // locally. This is largely a non-issue as pick + // constraints only come from `-> impl Trait` and + // friends which don't appear (thus far...) in + // closures. + pick_constraints: vec![], }; let bounds_mapping = closure_constraints -- GitLab