@@ -173,7 +173,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
173
173
}
174
174
ids
175
175
}
176
- ItemKind :: Const ( ref ty, ..) => {
176
+ ItemKind :: Const ( _ , ref ty, ..) => {
177
177
let mut ids = smallvec ! [ i. id] ;
178
178
if self . sess . features_untracked ( ) . impl_trait_in_bindings {
179
179
let mut visitor = ImplTraitTypeIdVisitor { ids : & mut ids } ;
@@ -264,11 +264,11 @@ impl<'hir> LoweringContext<'_, 'hir> {
264
264
let ( ty, body_id) = self . lower_const_item ( t, span, e. as_deref ( ) ) ;
265
265
hir:: ItemKind :: Static ( ty, m, body_id)
266
266
}
267
- ItemKind :: Const ( ref t, ref e) => {
267
+ ItemKind :: Const ( _ , ref t, ref e) => {
268
268
let ( ty, body_id) = self . lower_const_item ( t, span, e. as_deref ( ) ) ;
269
269
hir:: ItemKind :: Const ( ty, body_id)
270
270
}
271
- ItemKind :: Fn ( FnSig { ref decl, header } , ref generics, ref body) => {
271
+ ItemKind :: Fn ( _ , FnSig { ref decl, header } , ref generics, ref body) => {
272
272
let fn_def_id = self . resolver . definitions ( ) . local_def_id ( id) ;
273
273
self . with_new_scopes ( |this| {
274
274
this. current_item = Some ( ident. span ) ;
@@ -297,24 +297,24 @@ impl<'hir> LoweringContext<'_, 'hir> {
297
297
ItemKind :: Mod ( ref m) => hir:: ItemKind :: Mod ( self . lower_mod ( m) ) ,
298
298
ItemKind :: ForeignMod ( ref nm) => hir:: ItemKind :: ForeignMod ( self . lower_foreign_mod ( nm) ) ,
299
299
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 ( ) {
301
301
None => {
302
302
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 ( ) ) ;
304
304
hir:: ItemKind :: TyAlias ( ty, generics)
305
305
}
306
306
Some ( bounds) => {
307
307
let ctx = || ImplTraitContext :: OpaqueTy ( None , hir:: OpaqueTyOrigin :: Misc ) ;
308
308
let ty = hir:: OpaqueTy {
309
- generics : self . lower_generics ( generics , ctx ( ) ) ,
309
+ generics : self . lower_generics ( gen , ctx ( ) ) ,
310
310
bounds : self . lower_param_bounds ( bounds, ctx ( ) ) ,
311
311
impl_trait_fn : None ,
312
312
origin : hir:: OpaqueTyOrigin :: TypeAlias ,
313
313
} ;
314
314
hir:: ItemKind :: OpaqueTy ( ty)
315
315
}
316
316
} ,
317
- ItemKind :: TyAlias ( ref generics, _, None ) => {
317
+ ItemKind :: TyAlias ( _ , ref generics, _, None ) => {
318
318
let ty = self . arena . alloc ( self . ty ( span, hir:: TyKind :: Err ) ) ;
319
319
let generics = self . lower_generics ( generics, ImplTraitContext :: disallowed ( ) ) ;
320
320
hir:: ItemKind :: TyAlias ( ty, generics)
@@ -654,7 +654,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
654
654
ident : i. ident ,
655
655
attrs : self . lower_attrs ( & i. attrs ) ,
656
656
kind : match i. kind {
657
- ForeignItemKind :: Fn ( ref sig, ref generics, _) => {
657
+ ForeignItemKind :: Fn ( _ , ref sig, ref generics, _) => {
658
658
let fdec = & sig. decl ;
659
659
let ( generics, ( fn_dec, fn_args) ) = self . add_in_band_defs (
660
660
generics,
@@ -675,7 +675,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
675
675
let ty = self . lower_ty ( t, ImplTraitContext :: disallowed ( ) ) ;
676
676
hir:: ForeignItemKind :: Static ( ty, m)
677
677
}
678
- ForeignItemKind :: Const ( ref t, _) => {
678
+ ForeignItemKind :: Const ( _ , ref t, _) => {
679
679
// For recovery purposes.
680
680
let ty = self . lower_ty ( t, ImplTraitContext :: disallowed ( ) ) ;
681
681
hir:: ForeignItemKind :: Static ( ty, Mutability :: Not )
@@ -758,24 +758,24 @@ impl<'hir> LoweringContext<'_, 'hir> {
758
758
759
759
let ( generics, kind) = match i. kind {
760
760
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) => {
762
762
let ty = self . lower_ty ( ty, ImplTraitContext :: disallowed ( ) ) ;
763
763
let body = default. as_ref ( ) . map ( |x| self . lower_const_body ( i. span , Some ( x) ) ) ;
764
764
( hir:: Generics :: empty ( ) , hir:: TraitItemKind :: Const ( ty, body) )
765
765
}
766
- AssocItemKind :: Fn ( ref sig, ref generics, None ) => {
766
+ AssocItemKind :: Fn ( _ , ref sig, ref generics, None ) => {
767
767
let names = self . lower_fn_params_to_names ( & sig. decl ) ;
768
768
let ( generics, sig) =
769
769
self . lower_method_sig ( generics, sig, trait_item_def_id, false , None ) ;
770
770
( generics, hir:: TraitItemKind :: Method ( sig, hir:: TraitMethod :: Required ( names) ) )
771
771
}
772
- AssocItemKind :: Fn ( ref sig, ref generics, Some ( ref body) ) => {
772
+ AssocItemKind :: Fn ( _ , ref sig, ref generics, Some ( ref body) ) => {
773
773
let body_id = self . lower_fn_body_block ( i. span , & sig. decl , Some ( body) ) ;
774
774
let ( generics, sig) =
775
775
self . lower_method_sig ( generics, sig, trait_item_def_id, false , None ) ;
776
776
( generics, hir:: TraitItemKind :: Method ( sig, hir:: TraitMethod :: Provided ( body_id) ) )
777
777
}
778
- AssocItemKind :: TyAlias ( ref generics, ref bounds, ref default) => {
778
+ AssocItemKind :: TyAlias ( _ , ref generics, ref bounds, ref default) => {
779
779
let ty = default. as_ref ( ) . map ( |x| self . lower_ty ( x, ImplTraitContext :: disallowed ( ) ) ) ;
780
780
let generics = self . lower_generics ( generics, ImplTraitContext :: disallowed ( ) ) ;
781
781
let kind = hir:: TraitItemKind :: Type (
@@ -801,11 +801,11 @@ impl<'hir> LoweringContext<'_, 'hir> {
801
801
fn lower_trait_item_ref ( & mut self , i : & AssocItem ) -> hir:: TraitItemRef {
802
802
let ( kind, has_default) = match & i. kind {
803
803
AssocItemKind :: Static ( _, _, default) // Let's pretend this is a `const` for recovery.
804
- | AssocItemKind :: Const ( _, default) => {
804
+ | AssocItemKind :: Const ( _, _ , default) => {
805
805
( hir:: AssocItemKind :: Const , default. is_some ( ) )
806
806
}
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) => {
809
809
( hir:: AssocItemKind :: Method { has_self : sig. decl . has_self ( ) } , default. is_some ( ) )
810
810
}
811
811
AssocItemKind :: Macro ( ..) => unimplemented ! ( ) ,
@@ -823,15 +823,15 @@ impl<'hir> LoweringContext<'_, 'hir> {
823
823
fn lower_impl_item ( & mut self , i : & AssocItem ) -> hir:: ImplItem < ' hir > {
824
824
let impl_item_def_id = self . resolver . definitions ( ) . local_def_id ( i. id ) ;
825
825
826
- let ( generics, kind) = match i. kind {
827
- 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) => {
828
828
let ty = self . lower_ty ( ty, ImplTraitContext :: disallowed ( ) ) ;
829
829
(
830
830
hir:: Generics :: empty ( ) ,
831
831
hir:: ImplItemKind :: Const ( ty, self . lower_const_body ( i. span , expr. as_deref ( ) ) ) ,
832
832
)
833
833
}
834
- AssocItemKind :: Fn ( ref sig, ref generics, ref body) => {
834
+ AssocItemKind :: Fn ( _ , sig, generics, body) => {
835
835
self . current_item = Some ( i. span ) ;
836
836
let asyncness = sig. header . asyncness ;
837
837
let body_id =
@@ -847,7 +847,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
847
847
848
848
( generics, hir:: ImplItemKind :: Method ( sig, body_id) )
849
849
}
850
- AssocItemKind :: TyAlias ( ref generics, _, ref ty) => {
850
+ AssocItemKind :: TyAlias ( _ , generics, _, ty) => {
851
851
let generics = self . lower_generics ( generics, ImplTraitContext :: disallowed ( ) ) ;
852
852
let kind = match ty {
853
853
None => {
@@ -876,7 +876,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
876
876
attrs : self . lower_attrs ( & i. attrs ) ,
877
877
generics,
878
878
vis : self . lower_visibility ( & i. vis , None ) ,
879
- defaultness : self . lower_defaultness ( i. defaultness , true /* [1] */ ) ,
879
+ defaultness : self . lower_defaultness ( i. kind . defaultness ( ) , true /* [1] */ ) ,
880
880
kind,
881
881
span : i. span ,
882
882
}
@@ -890,17 +890,17 @@ impl<'hir> LoweringContext<'_, 'hir> {
890
890
ident : i. ident ,
891
891
span : i. span ,
892
892
vis : self . lower_visibility ( & i. vis , Some ( i. id ) ) ,
893
- defaultness : self . lower_defaultness ( i. defaultness , true /* [1] */ ) ,
893
+ defaultness : self . lower_defaultness ( i. kind . defaultness ( ) , true /* [1] */ ) ,
894
894
kind : match & i. kind {
895
895
AssocItemKind :: Static ( ..) // Let's pretend this is a `const` for recovery.
896
896
| AssocItemKind :: Const ( ..) => hir:: AssocItemKind :: Const ,
897
- AssocItemKind :: TyAlias ( _ , _ , ty) => {
897
+ AssocItemKind :: TyAlias ( .. , ty) => {
898
898
match ty. as_deref ( ) . and_then ( |ty| ty. kind . opaque_top_hack ( ) ) {
899
899
None => hir:: AssocItemKind :: Type ,
900
900
Some ( _) => hir:: AssocItemKind :: OpaqueTy ,
901
901
}
902
902
}
903
- AssocItemKind :: Fn ( sig , _ , _ ) => {
903
+ AssocItemKind :: Fn ( _ , sig , .. ) => {
904
904
hir:: AssocItemKind :: Method { has_self : sig. decl . has_self ( ) }
905
905
}
906
906
AssocItemKind :: Macro ( ..) => unimplemented ! ( ) ,
0 commit comments