]> git.lizzy.rs Git - rust.git/commitdiff
rustc_typeck: move comment about inference variables to where it makes sense.
authorEduard-Mihai Burtescu <edy.burt@gmail.com>
Wed, 18 Mar 2020 10:49:44 +0000 (12:49 +0200)
committerEduard-Mihai Burtescu <edy.burt@gmail.com>
Sat, 21 Mar 2020 12:47:33 +0000 (14:47 +0200)
src/librustc_typeck/check/closure.rs

index ded42482973d0222beba3ae4737f1cd37671847a..a277220b1a20095dafd999a0c02753efddb457db 100644 (file)
@@ -77,9 +77,6 @@ fn check_closure(
         let generator_types =
             check_fn(self, self.param_env, liberated_sig, decl, expr.hir_id, body, gen).1;
 
-        // Create type variables (for now) to represent the transformed
-        // types of upvars. These will be unified during the upvar
-        // inference phase (`upvar.rs`).
         let base_substs =
             InternalSubsts::identity_for_item(self.tcx, self.tcx.closure_base_def_id(expr_def_id));
         // HACK(eddyb) this hardcodes indices into substs but it should rely on
@@ -93,6 +90,9 @@ fn check_closure(
             GenericParamDefKind::Type { .. } => if param.index as usize == tupled_upvars_idx {
                 self.tcx.mk_tup(self.tcx.upvars(expr_def_id).iter().flat_map(|upvars| {
                     upvars.iter().map(|(&var_hir_id, _)| {
+                        // Create type variables (for now) to represent the transformed
+                        // types of upvars. These will be unified during the upvar
+                        // inference phase (`upvar.rs`).
                         self.infcx.next_ty_var(TypeVariableOrigin {
                             // FIXME(eddyb) distinguish upvar inference variables from the rest.
                             kind: TypeVariableOriginKind::ClosureSynthetic,
@@ -101,6 +101,10 @@ fn check_closure(
                     })
                 }))
             } else {
+                // Create type variables (for now) to represent the various
+                // pieces of information kept in `{Closure,Generic}Substs`.
+                // They will either be unified below, or later during the upvar
+                // inference phase (`upvar.rs`)
                 self.infcx.next_ty_var(TypeVariableOrigin {
                     kind: TypeVariableOriginKind::ClosureSynthetic,
                     span: expr.span,