@@ -173,7 +173,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
173173 }
174174 ids
175175 }
176- ItemKind :: Const ( ref ty, ..) => {
176+ ItemKind :: Const ( _ , ref ty, ..) => {
177177 let mut ids = smallvec ! [ i. id] ;
178178 if self . sess . features_untracked ( ) . impl_trait_in_bindings {
179179 let mut visitor = ImplTraitTypeIdVisitor { ids : & mut ids } ;
@@ -264,11 +264,11 @@ impl<'hir> LoweringContext<'_, 'hir> {
264264 let ( ty, body_id) = self . lower_const_item ( t, span, e. as_deref ( ) ) ;
265265 hir:: ItemKind :: Static ( ty, m, body_id)
266266 }
267- ItemKind :: Const ( ref t, ref e) => {
267+ ItemKind :: Const ( _ , ref t, ref e) => {
268268 let ( ty, body_id) = self . lower_const_item ( t, span, e. as_deref ( ) ) ;
269269 hir:: ItemKind :: Const ( ty, body_id)
270270 }
271- ItemKind :: Fn ( FnSig { ref decl, header } , ref generics, ref body) => {
271+ ItemKind :: Fn ( _ , FnSig { ref decl, header } , ref generics, ref body) => {
272272 let fn_def_id = self . resolver . definitions ( ) . local_def_id ( id) ;
273273 self . with_new_scopes ( |this| {
274274 this. current_item = Some ( ident. span ) ;
@@ -297,24 +297,24 @@ impl<'hir> LoweringContext<'_, 'hir> {
297297 ItemKind :: Mod ( ref m) => hir:: ItemKind :: Mod ( self . lower_mod ( m) ) ,
298298 ItemKind :: ForeignMod ( ref nm) => hir:: ItemKind :: ForeignMod ( self . lower_foreign_mod ( nm) ) ,
299299 ItemKind :: GlobalAsm ( ref ga) => hir:: ItemKind :: GlobalAsm ( self . lower_global_asm ( ga) ) ,
300- ItemKind :: TyAlias ( ref generics , _, Some ( ref ty) ) => match ty. kind . opaque_top_hack ( ) {
300+ ItemKind :: TyAlias ( _ , ref gen , _, Some ( ref ty) ) => match ty. kind . opaque_top_hack ( ) {
301301 None => {
302302 let ty = self . lower_ty ( ty, ImplTraitContext :: disallowed ( ) ) ;
303- let generics = self . lower_generics ( generics , ImplTraitContext :: disallowed ( ) ) ;
303+ let generics = self . lower_generics ( gen , ImplTraitContext :: disallowed ( ) ) ;
304304 hir:: ItemKind :: TyAlias ( ty, generics)
305305 }
306306 Some ( bounds) => {
307307 let ctx = || ImplTraitContext :: OpaqueTy ( None , hir:: OpaqueTyOrigin :: Misc ) ;
308308 let ty = hir:: OpaqueTy {
309- generics : self . lower_generics ( generics , ctx ( ) ) ,
309+ generics : self . lower_generics ( gen , ctx ( ) ) ,
310310 bounds : self . lower_param_bounds ( bounds, ctx ( ) ) ,
311311 impl_trait_fn : None ,
312312 origin : hir:: OpaqueTyOrigin :: TypeAlias ,
313313 } ;
314314 hir:: ItemKind :: OpaqueTy ( ty)
315315 }
316316 } ,
317- ItemKind :: TyAlias ( ref generics, _, None ) => {
317+ ItemKind :: TyAlias ( _ , ref generics, _, None ) => {
318318 let ty = self . arena . alloc ( self . ty ( span, hir:: TyKind :: Err ) ) ;
319319 let generics = self . lower_generics ( generics, ImplTraitContext :: disallowed ( ) ) ;
320320 hir:: ItemKind :: TyAlias ( ty, generics)
@@ -654,7 +654,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
654654 ident : i. ident ,
655655 attrs : self . lower_attrs ( & i. attrs ) ,
656656 kind : match i. kind {
657- ForeignItemKind :: Fn ( ref sig, ref generics, _) => {
657+ ForeignItemKind :: Fn ( _ , ref sig, ref generics, _) => {
658658 let fdec = & sig. decl ;
659659 let ( generics, ( fn_dec, fn_args) ) = self . add_in_band_defs (
660660 generics,
@@ -675,7 +675,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
675675 let ty = self . lower_ty ( t, ImplTraitContext :: disallowed ( ) ) ;
676676 hir:: ForeignItemKind :: Static ( ty, m)
677677 }
678- ForeignItemKind :: Const ( ref t, _) => {
678+ ForeignItemKind :: Const ( _ , ref t, _) => {
679679 // For recovery purposes.
680680 let ty = self . lower_ty ( t, ImplTraitContext :: disallowed ( ) ) ;
681681 hir:: ForeignItemKind :: Static ( ty, Mutability :: Not )
@@ -758,24 +758,24 @@ impl<'hir> LoweringContext<'_, 'hir> {
758758
759759 let ( generics, kind) = match i. kind {
760760 AssocItemKind :: Static ( ref ty, _, ref default) // Let's pretend this is a `const`.
761- | AssocItemKind :: Const ( ref ty, ref default) => {
761+ | AssocItemKind :: Const ( _ , ref ty, ref default) => {
762762 let ty = self . lower_ty ( ty, ImplTraitContext :: disallowed ( ) ) ;
763763 let body = default. as_ref ( ) . map ( |x| self . lower_const_body ( i. span , Some ( x) ) ) ;
764764 ( hir:: Generics :: empty ( ) , hir:: TraitItemKind :: Const ( ty, body) )
765765 }
766- AssocItemKind :: Fn ( ref sig, ref generics, None ) => {
766+ AssocItemKind :: Fn ( _ , ref sig, ref generics, None ) => {
767767 let names = self . lower_fn_params_to_names ( & sig. decl ) ;
768768 let ( generics, sig) =
769769 self . lower_method_sig ( generics, sig, trait_item_def_id, false , None ) ;
770770 ( generics, hir:: TraitItemKind :: Method ( sig, hir:: TraitMethod :: Required ( names) ) )
771771 }
772- AssocItemKind :: Fn ( ref sig, ref generics, Some ( ref body) ) => {
772+ AssocItemKind :: Fn ( _ , ref sig, ref generics, Some ( ref body) ) => {
773773 let body_id = self . lower_fn_body_block ( i. span , & sig. decl , Some ( body) ) ;
774774 let ( generics, sig) =
775775 self . lower_method_sig ( generics, sig, trait_item_def_id, false , None ) ;
776776 ( generics, hir:: TraitItemKind :: Method ( sig, hir:: TraitMethod :: Provided ( body_id) ) )
777777 }
778- AssocItemKind :: TyAlias ( ref generics, ref bounds, ref default) => {
778+ AssocItemKind :: TyAlias ( _ , ref generics, ref bounds, ref default) => {
779779 let ty = default. as_ref ( ) . map ( |x| self . lower_ty ( x, ImplTraitContext :: disallowed ( ) ) ) ;
780780 let generics = self . lower_generics ( generics, ImplTraitContext :: disallowed ( ) ) ;
781781 let kind = hir:: TraitItemKind :: Type (
@@ -801,22 +801,18 @@ impl<'hir> LoweringContext<'_, 'hir> {
801801 fn lower_trait_item_ref ( & mut self , i : & AssocItem ) -> hir:: TraitItemRef {
802802 let ( kind, has_default) = match & i. kind {
803803 AssocItemKind :: Static ( _, _, default) // Let's pretend this is a `const` for recovery.
804- | AssocItemKind :: Const ( _, default) => {
804+ | AssocItemKind :: Const ( _, _ , default) => {
805805 ( hir:: AssocItemKind :: Const , default. is_some ( ) )
806806 }
807- AssocItemKind :: TyAlias ( _, _, default) => ( hir:: AssocItemKind :: Type , default. is_some ( ) ) ,
808- AssocItemKind :: Fn ( sig, _, default) => {
807+ AssocItemKind :: TyAlias ( _, _, _ , default) => ( hir:: AssocItemKind :: Type , default. is_some ( ) ) ,
808+ AssocItemKind :: Fn ( _ , sig, _, default) => {
809809 ( hir:: AssocItemKind :: Method { has_self : sig. decl . has_self ( ) } , default. is_some ( ) )
810810 }
811811 AssocItemKind :: Macro ( ..) => unimplemented ! ( ) ,
812812 } ;
813- hir:: TraitItemRef {
814- id : hir:: TraitItemId { hir_id : self . lower_node_id ( i. id ) } ,
815- ident : i. ident ,
816- span : i. span ,
817- defaultness : self . lower_defaultness ( Defaultness :: Default , has_default) ,
818- kind,
819- }
813+ let id = hir:: TraitItemId { hir_id : self . lower_node_id ( i. id ) } ;
814+ let defaultness = hir:: Defaultness :: Default { has_value : has_default } ;
815+ hir:: TraitItemRef { id, ident : i. ident , span : i. span , defaultness, kind }
820816 }
821817
822818 /// Construct `ExprKind::Err` for the given `span`.
@@ -827,15 +823,15 @@ impl<'hir> LoweringContext<'_, 'hir> {
827823 fn lower_impl_item ( & mut self , i : & AssocItem ) -> hir:: ImplItem < ' hir > {
828824 let impl_item_def_id = self . resolver . definitions ( ) . local_def_id ( i. id ) ;
829825
830- let ( generics, kind) = match i. kind {
831- AssocItemKind :: Static ( ref ty, _, ref expr) | AssocItemKind :: Const ( ref ty, ref expr) => {
826+ let ( generics, kind) = match & i. kind {
827+ AssocItemKind :: Static ( ty, _, expr) | AssocItemKind :: Const ( _ , ty, expr) => {
832828 let ty = self . lower_ty ( ty, ImplTraitContext :: disallowed ( ) ) ;
833829 (
834830 hir:: Generics :: empty ( ) ,
835831 hir:: ImplItemKind :: Const ( ty, self . lower_const_body ( i. span , expr. as_deref ( ) ) ) ,
836832 )
837833 }
838- AssocItemKind :: Fn ( ref sig, ref generics, ref body) => {
834+ AssocItemKind :: Fn ( _ , sig, generics, body) => {
839835 self . current_item = Some ( i. span ) ;
840836 let asyncness = sig. header . asyncness ;
841837 let body_id =
@@ -851,7 +847,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
851847
852848 ( generics, hir:: ImplItemKind :: Method ( sig, body_id) )
853849 }
854- AssocItemKind :: TyAlias ( ref generics, _, ref ty) => {
850+ AssocItemKind :: TyAlias ( _ , generics, _, ty) => {
855851 let generics = self . lower_generics ( generics, ImplTraitContext :: disallowed ( ) ) ;
856852 let kind = match ty {
857853 None => {
@@ -880,7 +876,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
880876 attrs : self . lower_attrs ( & i. attrs ) ,
881877 generics,
882878 vis : self . lower_visibility ( & i. vis , None ) ,
883- defaultness : self . lower_defaultness ( i. defaultness , true /* [1] */ ) ,
879+ defaultness : self . lower_defaultness ( i. kind . defaultness ( ) , true /* [1] */ ) ,
884880 kind,
885881 span : i. span ,
886882 }
@@ -894,17 +890,17 @@ impl<'hir> LoweringContext<'_, 'hir> {
894890 ident : i. ident ,
895891 span : i. span ,
896892 vis : self . lower_visibility ( & i. vis , Some ( i. id ) ) ,
897- defaultness : self . lower_defaultness ( i. defaultness , true /* [1] */ ) ,
893+ defaultness : self . lower_defaultness ( i. kind . defaultness ( ) , true /* [1] */ ) ,
898894 kind : match & i. kind {
899895 AssocItemKind :: Static ( ..) // Let's pretend this is a `const` for recovery.
900896 | AssocItemKind :: Const ( ..) => hir:: AssocItemKind :: Const ,
901- AssocItemKind :: TyAlias ( _ , _ , ty) => {
897+ AssocItemKind :: TyAlias ( .. , ty) => {
902898 match ty. as_deref ( ) . and_then ( |ty| ty. kind . opaque_top_hack ( ) ) {
903899 None => hir:: AssocItemKind :: Type ,
904900 Some ( _) => hir:: AssocItemKind :: OpaqueTy ,
905901 }
906902 }
907- AssocItemKind :: Fn ( sig , _ , _ ) => {
903+ AssocItemKind :: Fn ( _ , sig , .. ) => {
908904 hir:: AssocItemKind :: Method { has_self : sig. decl . has_self ( ) }
909905 }
910906 AssocItemKind :: Macro ( ..) => unimplemented ! ( ) ,
@@ -948,7 +944,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
948944
949945 fn lower_defaultness ( & self , d : Defaultness , has_value : bool ) -> hir:: Defaultness {
950946 match d {
951- Defaultness :: Default => hir:: Defaultness :: Default { has_value : has_value } ,
947+ Defaultness :: Default ( _ ) => hir:: Defaultness :: Default { has_value } ,
952948 Defaultness :: Final => {
953949 assert ! ( has_value) ;
954950 hir:: Defaultness :: Final
0 commit comments