@@ -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,22 +801,18 @@ 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 ! ( ) ,
812
812
} ;
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 }
820
816
}
821
817
822
818
/// Construct `ExprKind::Err` for the given `span`.
@@ -827,15 +823,15 @@ impl<'hir> LoweringContext<'_, 'hir> {
827
823
fn lower_impl_item ( & mut self , i : & AssocItem ) -> hir:: ImplItem < ' hir > {
828
824
let impl_item_def_id = self . resolver . definitions ( ) . local_def_id ( i. id ) ;
829
825
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) => {
832
828
let ty = self . lower_ty ( ty, ImplTraitContext :: disallowed ( ) ) ;
833
829
(
834
830
hir:: Generics :: empty ( ) ,
835
831
hir:: ImplItemKind :: Const ( ty, self . lower_const_body ( i. span , expr. as_deref ( ) ) ) ,
836
832
)
837
833
}
838
- AssocItemKind :: Fn ( ref sig, ref generics, ref body) => {
834
+ AssocItemKind :: Fn ( _ , sig, generics, body) => {
839
835
self . current_item = Some ( i. span ) ;
840
836
let asyncness = sig. header . asyncness ;
841
837
let body_id =
@@ -851,7 +847,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
851
847
852
848
( generics, hir:: ImplItemKind :: Method ( sig, body_id) )
853
849
}
854
- AssocItemKind :: TyAlias ( ref generics, _, ref ty) => {
850
+ AssocItemKind :: TyAlias ( _ , generics, _, ty) => {
855
851
let generics = self . lower_generics ( generics, ImplTraitContext :: disallowed ( ) ) ;
856
852
let kind = match ty {
857
853
None => {
@@ -880,7 +876,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
880
876
attrs : self . lower_attrs ( & i. attrs ) ,
881
877
generics,
882
878
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] */ ) ,
884
880
kind,
885
881
span : i. span ,
886
882
}
@@ -894,17 +890,17 @@ impl<'hir> LoweringContext<'_, 'hir> {
894
890
ident : i. ident ,
895
891
span : i. span ,
896
892
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] */ ) ,
898
894
kind : match & i. kind {
899
895
AssocItemKind :: Static ( ..) // Let's pretend this is a `const` for recovery.
900
896
| AssocItemKind :: Const ( ..) => hir:: AssocItemKind :: Const ,
901
- AssocItemKind :: TyAlias ( _ , _ , ty) => {
897
+ AssocItemKind :: TyAlias ( .. , ty) => {
902
898
match ty. as_deref ( ) . and_then ( |ty| ty. kind . opaque_top_hack ( ) ) {
903
899
None => hir:: AssocItemKind :: Type ,
904
900
Some ( _) => hir:: AssocItemKind :: OpaqueTy ,
905
901
}
906
902
}
907
- AssocItemKind :: Fn ( sig , _ , _ ) => {
903
+ AssocItemKind :: Fn ( _ , sig , .. ) => {
908
904
hir:: AssocItemKind :: Method { has_self : sig. decl . has_self ( ) }
909
905
}
910
906
AssocItemKind :: Macro ( ..) => unimplemented ! ( ) ,
@@ -948,7 +944,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
948
944
949
945
fn lower_defaultness ( & self , d : Defaultness , has_value : bool ) -> hir:: Defaultness {
950
946
match d {
951
- Defaultness :: Default => hir:: Defaultness :: Default { has_value : has_value } ,
947
+ Defaultness :: Default ( _ ) => hir:: Defaultness :: Default { has_value } ,
952
948
Defaultness :: Final => {
953
949
assert ! ( has_value) ;
954
950
hir:: Defaultness :: Final
0 commit comments