@@ -111,12 +111,7 @@ pub trait HirTyLowerer<'tcx> {
111111 fn ty_infer ( & self , param : Option < & ty:: GenericParamDef > , span : Span ) -> Ty < ' tcx > ;
112112
113113 /// Returns the const to use when a const is omitted.
114- fn ct_infer (
115- & self ,
116- ty : Ty < ' tcx > ,
117- param : Option < & ty:: GenericParamDef > ,
118- span : Span ,
119- ) -> Const < ' tcx > ;
114+ fn ct_infer ( & self , param : Option < & ty:: GenericParamDef > , span : Span ) -> Const < ' tcx > ;
120115
121116 /// Probe bounds in scope where the bounded type coincides with the given type parameter.
122117 ///
@@ -439,15 +434,15 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
439434
440435 fn provided_kind (
441436 & mut self ,
442- preceding_args : & [ ty:: GenericArg < ' tcx > ] ,
437+ _preceding_args : & [ ty:: GenericArg < ' tcx > ] ,
443438 param : & ty:: GenericParamDef ,
444439 arg : & GenericArg < ' tcx > ,
445440 ) -> ty:: GenericArg < ' tcx > {
446441 let tcx = self . lowerer . tcx ( ) ;
447442
448443 if let Err ( incorrect) = self . incorrect_args {
449444 if incorrect. invalid_args . contains ( & ( param. index as usize ) ) {
450- return param. to_error ( tcx, preceding_args ) ;
445+ return param. to_error ( tcx) ;
451446 }
452447 }
453448
@@ -487,12 +482,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
487482 ty:: Const :: from_anon_const ( tcx, did) . into ( )
488483 }
489484 ( & GenericParamDefKind :: Const { .. } , hir:: GenericArg :: Infer ( inf) ) => {
490- let ty = tcx
491- . at ( self . span )
492- . type_of ( param. def_id )
493- . no_bound_vars ( )
494- . expect ( "const parameter types cannot be generic" ) ;
495- self . lowerer . ct_infer ( ty, Some ( param) , inf. span ) . into ( )
485+ self . lowerer . ct_infer ( Some ( param) , inf. span ) . into ( )
496486 }
497487 ( kind, arg) => span_bug ! (
498488 self . span,
@@ -511,7 +501,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
511501
512502 if let Err ( incorrect) = self . incorrect_args {
513503 if incorrect. invalid_args . contains ( & ( param. index as usize ) ) {
514- return param. to_error ( tcx, preceding_args ) ;
504+ return param. to_error ( tcx) ;
515505 }
516506 }
517507 match param. kind {
@@ -548,7 +538,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
548538 . no_bound_vars ( )
549539 . expect ( "const parameter types cannot be generic" ) ;
550540 if let Err ( guar) = ty. error_reported ( ) {
551- return ty:: Const :: new_error ( tcx, guar, ty ) . into ( ) ;
541+ return ty:: Const :: new_error ( tcx, guar) . into ( ) ;
552542 }
553543 // FIXME(effects) see if we should special case effect params here
554544 if !infer_args && has_default {
@@ -557,10 +547,10 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
557547 . into ( )
558548 } else {
559549 if infer_args {
560- self . lowerer . ct_infer ( ty , Some ( param) , self . span ) . into ( )
550+ self . lowerer . ct_infer ( Some ( param) , self . span ) . into ( )
561551 } else {
562552 // We've already errored above about the mismatch.
563- ty:: Const :: new_misc_error ( tcx, ty ) . into ( )
553+ ty:: Const :: new_misc_error ( tcx) . into ( )
564554 }
565555 }
566556 }
@@ -1908,7 +1898,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
19081898 ///
19091899 /// Early-bound const parameters get lowered to [`ty::ConstKind::Param`]
19101900 /// and late-bound ones to [`ty::ConstKind::Bound`].
1911- pub ( crate ) fn lower_const_param ( & self , hir_id : HirId , param_ty : Ty < ' tcx > ) -> Const < ' tcx > {
1901+ pub ( crate ) fn lower_const_param ( & self , hir_id : HirId ) -> Const < ' tcx > {
19121902 let tcx = self . tcx ( ) ;
19131903 match tcx. named_bound_var ( hir_id) {
19141904 Some ( rbv:: ResolvedArg :: EarlyBound ( def_id) ) => {
@@ -1918,12 +1908,12 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
19181908 let generics = tcx. generics_of ( item_def_id) ;
19191909 let index = generics. param_def_id_to_index [ & def_id] ;
19201910 let name = tcx. item_name ( def_id) ;
1921- ty:: Const :: new_param ( tcx, ty:: ParamConst :: new ( index, name) , param_ty )
1911+ ty:: Const :: new_param ( tcx, ty:: ParamConst :: new ( index, name) )
19221912 }
19231913 Some ( rbv:: ResolvedArg :: LateBound ( debruijn, index, _) ) => {
1924- ty:: Const :: new_bound ( tcx, debruijn, ty:: BoundVar :: from_u32 ( index) , param_ty )
1914+ ty:: Const :: new_bound ( tcx, debruijn, ty:: BoundVar :: from_u32 ( index) )
19251915 }
1926- Some ( rbv:: ResolvedArg :: Error ( guar) ) => ty:: Const :: new_error ( tcx, guar, param_ty ) ,
1916+ Some ( rbv:: ResolvedArg :: Error ( guar) ) => ty:: Const :: new_error ( tcx, guar) ,
19271917 arg => bug ! ( "unexpected bound var resolution for {:?}: {arg:?}" , hir_id) ,
19281918 }
19291919 }
@@ -2139,7 +2129,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
21392129 }
21402130 hir:: TyKind :: Array ( ty, length) => {
21412131 let length = match length {
2142- hir:: ArrayLen :: Infer ( inf) => self . ct_infer ( tcx . types . usize , None , inf. span ) ,
2132+ hir:: ArrayLen :: Infer ( inf) => self . ct_infer ( None , inf. span ) ,
21432133 hir:: ArrayLen :: Body ( constant) => {
21442134 ty:: Const :: from_anon_const ( tcx, constant. def_id )
21452135 }
@@ -2177,7 +2167,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
21772167 match tcx. lit_to_const ( lit_input) {
21782168 Ok ( c) => c,
21792169 Err ( LitToConstError :: Reported ( err) ) => {
2180- ty:: Const :: new_error ( tcx, err, ty )
2170+ ty:: Const :: new_error ( tcx, err)
21812171 }
21822172 Err ( LitToConstError :: TypeError ) => todo ! ( ) ,
21832173 }
@@ -2198,19 +2188,20 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
21982188 . type_of ( def_id)
21992189 . no_bound_vars ( )
22002190 . expect ( "const parameter types cannot be generic" ) ;
2201- self . lower_const_param ( expr. hir_id , ty )
2191+ self . lower_const_param ( expr. hir_id )
22022192 }
22032193
22042194 _ => {
22052195 let err = tcx
22062196 . dcx ( )
22072197 . emit_err ( crate :: errors:: NonConstRange { span : expr. span } ) ;
2208- ty:: Const :: new_error ( tcx, err, ty )
2198+ ty:: Const :: new_error ( tcx, err)
22092199 }
22102200 } ;
2211- self . record_ty ( expr. hir_id , c. ty ( ) , expr. span ) ;
2201+ // THISPR
2202+ self . record_ty ( expr. hir_id , todo ! ( ) , expr. span ) ;
22122203 if let Some ( ( id, span) ) = neg {
2213- self . record_ty ( id, c . ty ( ) , span) ;
2204+ self . record_ty ( id, todo ! ( ) , span) ;
22142205 }
22152206 c
22162207 } ;
0 commit comments