@@ -253,7 +253,7 @@ enum ImplTraitContext {
253253/// equivalent to a fresh universal parameter like `fn foo<T: Debug>(x: T)`. 
254254/// 
255255/// Newly generated parameters should be inserted into the given `Vec`. 
256- Universal ( LocalDefId ) , 
256+ Universal , 
257257
258258    /// Treat `impl Trait` as shorthand for a new opaque type. 
259259/// Example: `fn foo() -> impl Debug`, where `impl Debug` is conceptually 
@@ -887,7 +887,6 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
887887                hir:: TypeBindingKind :: Equality  {  term } 
888888            } 
889889            AssocConstraintKind :: Bound  {  ref  bounds }  => { 
890-                 let  mut  parent_def_id = self . current_hir_id_owner ; 
891890                // Piggy-back on the `impl Trait` context to figure out the correct behavior. 
892891                let  ( desugar_to_impl_trait,  itctx)  = match  itctx { 
893892                    // We are in the return position: 
@@ -907,10 +906,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
907906                    // so desugar to 
908907                    // 
909908                    //     fn foo(x: dyn Iterator<Item = impl Debug>) 
910-                     ImplTraitContext :: Universal ( parent)  if  self . is_in_dyn_type  => { 
911-                         parent_def_id = parent; 
912-                         ( true ,  itctx) 
913-                     } 
909+                     ImplTraitContext :: Universal  if  self . is_in_dyn_type  => ( true ,  itctx) , 
914910
915911                    // In `type Foo = dyn Iterator<Item: Debug>` we desugar to 
916912                    // `type Foo = dyn Iterator<Item = impl Debug>` but we have to override the 
@@ -936,6 +932,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
936932                    // Desugar `AssocTy: Bounds` into `AssocTy = impl Bounds`. We do this by 
937933                    // constructing the HIR for `impl bounds...` and then lowering that. 
938934
935+                     let  parent_def_id = self . current_hir_id_owner ; 
939936                    let  impl_trait_node_id = self . resolver . next_node_id ( ) ; 
940937                    self . resolver . create_def ( 
941938                        parent_def_id, 
@@ -1214,12 +1211,12 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
12141211                            |this| this. lower_param_bounds ( bounds,  nested_itctx) , 
12151212                        ) 
12161213                    } 
1217-                     ImplTraitContext :: Universal ( parent_def_id )  => { 
1214+                     ImplTraitContext :: Universal  => { 
12181215                        // Add a definition for the in-band `Param`. 
12191216                        let  def_id = self . resolver . local_def_id ( def_node_id) ; 
12201217
1221-                         let  hir_bounds =  self 
1222-                             . lower_param_bounds ( bounds,  ImplTraitContext :: Universal ( parent_def_id ) ) ; 
1218+                         let  hir_bounds =
1219+                             self . lower_param_bounds ( bounds,  ImplTraitContext :: Universal ) ; 
12231220                        // Set the name to `impl Bound1 + Bound2`. 
12241221                        let  ident = Ident :: from_str_and_span ( & pprust:: ty_to_string ( t) ,  span) ; 
12251222                        let  param = hir:: GenericParam  { 
@@ -1429,10 +1426,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
14291426        } 
14301427        let  inputs = self . arena . alloc_from_iter ( inputs. iter ( ) . map ( |param| { 
14311428            if  fn_node_id. is_some ( )  { 
1432-                 self . lower_ty_direct ( 
1433-                     & param. ty , 
1434-                     ImplTraitContext :: Universal ( self . current_hir_id_owner ) , 
1435-                 ) 
1429+                 self . lower_ty_direct ( & param. ty ,  ImplTraitContext :: Universal ) 
14361430            }  else  { 
14371431                self . lower_ty_direct ( 
14381432                    & param. ty , 
0 commit comments