@@ -103,12 +103,7 @@ pub trait HirTyLowerer<'tcx> {
103103 fn ty_infer ( & self , param : Option < & ty:: GenericParamDef > , span : Span ) -> Ty < ' tcx > ;
104104
105105 /// Returns the const to use when a const is omitted.
106- fn ct_infer (
107- & self ,
108- ty : Ty < ' tcx > ,
109- param : Option < & ty:: GenericParamDef > ,
110- span : Span ,
111- ) -> Const < ' tcx > ;
106+ fn ct_infer ( & self , param : Option < & ty:: GenericParamDef > , span : Span ) -> Const < ' tcx > ;
112107
113108 /// Probe bounds in scope where the bounded type coincides with the given type parameter.
114109 ///
@@ -485,16 +480,11 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
485480 ty:: Const :: from_anon_const ( tcx, did) . into ( )
486481 }
487482 ( & GenericParamDefKind :: Const { .. } , hir:: GenericArg :: Infer ( inf) ) => {
488- let ty = tcx
489- . at ( self . span )
490- . type_of ( param. def_id )
491- . no_bound_vars ( )
492- . expect ( "const parameter types cannot be generic" ) ;
493483 if self . lowerer . allow_infer ( ) {
494- self . lowerer . ct_infer ( ty , Some ( param) , inf. span ) . into ( )
484+ self . lowerer . ct_infer ( Some ( param) , inf. span ) . into ( )
495485 } else {
496486 self . inferred_params . push ( inf. span ) ;
497- ty:: Const :: new_misc_error ( tcx, ty ) . into ( )
487+ ty:: Const :: new_misc_error ( tcx) . into ( )
498488 }
499489 }
500490 ( kind, arg) => span_bug ! (
@@ -552,7 +542,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
552542 . no_bound_vars ( )
553543 . expect ( "const parameter types cannot be generic" ) ;
554544 if let Err ( guar) = ty. error_reported ( ) {
555- return ty:: Const :: new_error ( tcx, guar, ty ) . into ( ) ;
545+ return ty:: Const :: new_error ( tcx, guar) . into ( ) ;
556546 }
557547 // FIXME(effects) see if we should special case effect params here
558548 if !infer_args && has_default {
@@ -561,10 +551,10 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
561551 . into ( )
562552 } else {
563553 if infer_args {
564- self . lowerer . ct_infer ( ty , Some ( param) , self . span ) . into ( )
554+ self . lowerer . ct_infer ( Some ( param) , self . span ) . into ( )
565555 } else {
566556 // We've already errored above about the mismatch.
567- ty:: Const :: new_misc_error ( tcx, ty ) . into ( )
557+ ty:: Const :: new_misc_error ( tcx) . into ( )
568558 }
569559 }
570560 }
@@ -1914,7 +1904,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
19141904 ///
19151905 /// Early-bound const parameters get lowered to [`ty::ConstKind::Param`]
19161906 /// and late-bound ones to [`ty::ConstKind::Bound`].
1917- pub ( crate ) fn lower_const_param ( & self , hir_id : HirId , param_ty : Ty < ' tcx > ) -> Const < ' tcx > {
1907+ pub ( crate ) fn lower_const_param ( & self , hir_id : HirId ) -> Const < ' tcx > {
19181908 let tcx = self . tcx ( ) ;
19191909 match tcx. named_bound_var ( hir_id) {
19201910 Some ( rbv:: ResolvedArg :: EarlyBound ( def_id) ) => {
@@ -1924,12 +1914,12 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
19241914 let generics = tcx. generics_of ( item_def_id) ;
19251915 let index = generics. param_def_id_to_index [ & def_id] ;
19261916 let name = tcx. item_name ( def_id) ;
1927- ty:: Const :: new_param ( tcx, ty:: ParamConst :: new ( index, name) , param_ty )
1917+ ty:: Const :: new_param ( tcx, ty:: ParamConst :: new ( index, name) )
19281918 }
19291919 Some ( rbv:: ResolvedArg :: LateBound ( debruijn, index, _) ) => {
1930- ty:: Const :: new_bound ( tcx, debruijn, ty:: BoundVar :: from_u32 ( index) , param_ty )
1920+ ty:: Const :: new_bound ( tcx, debruijn, ty:: BoundVar :: from_u32 ( index) )
19311921 }
1932- Some ( rbv:: ResolvedArg :: Error ( guar) ) => ty:: Const :: new_error ( tcx, guar, param_ty ) ,
1922+ Some ( rbv:: ResolvedArg :: Error ( guar) ) => ty:: Const :: new_error ( tcx, guar) ,
19331923 arg => bug ! ( "unexpected bound var resolution for {:?}: {arg:?}" , hir_id) ,
19341924 }
19351925 }
@@ -2145,7 +2135,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
21452135 }
21462136 hir:: TyKind :: Array ( ty, length) => {
21472137 let length = match length {
2148- hir:: ArrayLen :: Infer ( inf) => self . ct_infer ( tcx . types . usize , None , inf. span ) ,
2138+ hir:: ArrayLen :: Infer ( inf) => self . ct_infer ( None , inf. span ) ,
21492139 hir:: ArrayLen :: Body ( constant) => {
21502140 ty:: Const :: from_anon_const ( tcx, constant. def_id )
21512141 }
@@ -2183,7 +2173,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
21832173 match tcx. lit_to_const ( lit_input) {
21842174 Ok ( c) => c,
21852175 Err ( LitToConstError :: Reported ( err) ) => {
2186- ty:: Const :: new_error ( tcx, err, ty )
2176+ ty:: Const :: new_error ( tcx, err)
21872177 }
21882178 Err ( LitToConstError :: TypeError ) => todo ! ( ) ,
21892179 }
@@ -2204,19 +2194,20 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
22042194 . type_of ( def_id)
22052195 . no_bound_vars ( )
22062196 . expect ( "const parameter types cannot be generic" ) ;
2207- self . lower_const_param ( expr. hir_id , ty )
2197+ self . lower_const_param ( expr. hir_id )
22082198 }
22092199
22102200 _ => {
22112201 let err = tcx
22122202 . dcx ( )
22132203 . emit_err ( crate :: errors:: NonConstRange { span : expr. span } ) ;
2214- ty:: Const :: new_error ( tcx, err, ty )
2204+ ty:: Const :: new_error ( tcx, err)
22152205 }
22162206 } ;
2217- self . record_ty ( expr. hir_id , c. ty ( ) , expr. span ) ;
2207+ // THISPR
2208+ self . record_ty ( expr. hir_id , todo ! ( ) , expr. span ) ;
22182209 if let Some ( ( id, span) ) = neg {
2219- self . record_ty ( id, c . ty ( ) , span) ;
2210+ self . record_ty ( id, todo ! ( ) , span) ;
22202211 }
22212212 c
22222213 } ;
0 commit comments