Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit dcebd0f

Browse files
committed
Basic removal of Ty from places (boring)
1 parent 30ea1a2 commit dcebd0f

File tree

71 files changed

+332
-582
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+332
-582
lines changed

compiler/rustc_borrowck/src/type_check/relate_tys.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ impl<'me, 'bccx, 'tcx> NllTypeRelating<'me, 'bccx, 'tcx> {
193193
types: &mut |_bound_ty: ty::BoundTy| {
194194
unreachable!("we only replace regions in nll_relate, not types")
195195
},
196-
consts: &mut |_bound_var: ty::BoundVar, _ty| {
196+
consts: &mut |_bound_var: ty::BoundVar| {
197197
unreachable!("we only replace regions in nll_relate, not consts")
198198
},
199199
};
@@ -231,7 +231,7 @@ impl<'me, 'bccx, 'tcx> NllTypeRelating<'me, 'bccx, 'tcx> {
231231
types: &mut |_bound_ty: ty::BoundTy| {
232232
unreachable!("we only replace regions in nll_relate, not types")
233233
},
234-
consts: &mut |_bound_var: ty::BoundVar, _ty| {
234+
consts: &mut |_bound_var: ty::BoundVar| {
235235
unreachable!("we only replace regions in nll_relate, not consts")
236236
},
237237
};

compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,8 @@ fn push_const_param<'tcx>(tcx: TyCtxt<'tcx>, ct: ty::Const<'tcx>, output: &mut S
693693
ty::ConstKind::Param(param) => {
694694
write!(output, "{}", param.name)
695695
}
696-
_ => match ct.ty().kind() {
696+
// THISPR
697+
_ => match { todo!() as Ty<'tcx> }.kind() {
697698
ty::Int(ity) => {
698699
let bits = ct.eval_bits(tcx, ty::ParamEnv::reveal_all());
699700
let val = Integer::from_int_ty(&tcx, *ity).size().sign_extend(bits) as i128;

compiler/rustc_hir_analysis/src/check/compare_impl_item.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2198,9 +2198,6 @@ fn param_env_with_gat_bounds<'tcx>(
21982198
tcx,
21992199
ty::INNERMOST,
22002200
ty::BoundVar::from_usize(bound_vars.len() - 1),
2201-
tcx.type_of(param.def_id)
2202-
.no_bound_vars()
2203-
.expect("const parameter types cannot be generic"),
22042201
)
22052202
.into()
22062203
}

compiler/rustc_hir_analysis/src/collect.rs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -386,16 +386,8 @@ impl<'tcx> HirTyLowerer<'tcx> for ItemCtxt<'tcx> {
386386
Ty::new_error_with_message(self.tcx(), span, "bad placeholder type")
387387
}
388388

389-
fn ct_infer(&self, ty: Ty<'tcx>, _: Option<&ty::GenericParamDef>, span: Span) -> Const<'tcx> {
390-
let ty = self.tcx.fold_regions(ty, |r, _| match *r {
391-
rustc_type_ir::RegionKind::ReStatic => r,
392-
393-
// This is never reached in practice. If it ever is reached,
394-
// `ReErased` should be changed to `ReStatic`, and any other region
395-
// left alone.
396-
r => bug!("unexpected region: {r:?}"),
397-
});
398-
ty::Const::new_error_with_message(self.tcx(), ty, span, "bad placeholder constant")
389+
fn ct_infer(&self, _: Option<&ty::GenericParamDef>, span: Span) -> Const<'tcx> {
390+
ty::Const::new_error_with_message(self.tcx(), span, "bad placeholder constant")
399391
}
400392

401393
fn probe_ty_param_bounds(

compiler/rustc_hir_analysis/src/collect/predicates_of.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ fn gather_explicit_predicates_of(tcx: TyCtxt<'_>, def_id: LocalDefId) -> ty::Gen
197197
.type_of(param.def_id.to_def_id())
198198
.no_bound_vars()
199199
.expect("const parameters cannot be generic");
200-
let ct = icx.lowerer().lower_const_param(param.hir_id, ct_ty);
200+
let ct = icx.lowerer().lower_const_param(param.hir_id);
201201
predicates
202202
.insert((ty::ClauseKind::ConstArgHasType(ct, ct_ty).upcast(tcx), param.span));
203203
}

compiler/rustc_hir_analysis/src/hir_ty_lowering/bounds.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -366,11 +366,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
366366
},
367367
)
368368
});
369-
let ty = tcx
370-
.type_of(param.def_id)
371-
.no_bound_vars()
372-
.expect("ct params cannot have early bound vars");
373-
ty::Const::new_error(tcx, guar, ty).into()
369+
ty::Const::new_error(tcx, guar).into()
374370
}
375371
};
376372
num_bound_vars += 1;

compiler/rustc_hir_analysis/src/hir_ty_lowering/mod.rs

Lines changed: 20 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -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
///
@@ -438,15 +433,15 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
438433

439434
fn provided_kind(
440435
&mut self,
441-
preceding_args: &[ty::GenericArg<'tcx>],
436+
_preceding_args: &[ty::GenericArg<'tcx>],
442437
param: &ty::GenericParamDef,
443438
arg: &GenericArg<'tcx>,
444439
) -> ty::GenericArg<'tcx> {
445440
let tcx = self.lowerer.tcx();
446441

447442
if let Err(incorrect) = self.incorrect_args {
448443
if incorrect.invalid_args.contains(&(param.index as usize)) {
449-
return param.to_error(tcx, preceding_args);
444+
return param.to_error(tcx);
450445
}
451446
}
452447

@@ -491,16 +486,11 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
491486
ty::Const::from_anon_const(tcx, did).into()
492487
}
493488
(&GenericParamDefKind::Const { .. }, hir::GenericArg::Infer(inf)) => {
494-
let ty = tcx
495-
.at(self.span)
496-
.type_of(param.def_id)
497-
.no_bound_vars()
498-
.expect("const parameter types cannot be generic");
499489
if self.lowerer.allow_infer() {
500-
self.lowerer.ct_infer(ty, Some(param), inf.span).into()
490+
self.lowerer.ct_infer(Some(param), inf.span).into()
501491
} else {
502492
self.inferred_params.push(inf.span);
503-
ty::Const::new_misc_error(tcx, ty).into()
493+
ty::Const::new_misc_error(tcx).into()
504494
}
505495
}
506496
(kind, arg) => span_bug!(
@@ -520,7 +510,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
520510

521511
if let Err(incorrect) = self.incorrect_args {
522512
if incorrect.invalid_args.contains(&(param.index as usize)) {
523-
return param.to_error(tcx, preceding_args);
513+
return param.to_error(tcx);
524514
}
525515
}
526516
match param.kind {
@@ -568,7 +558,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
568558
.no_bound_vars()
569559
.expect("const parameter types cannot be generic");
570560
if let Err(guar) = ty.error_reported() {
571-
return ty::Const::new_error(tcx, guar, ty).into();
561+
return ty::Const::new_error(tcx, guar).into();
572562
}
573563
// FIXME(effects) see if we should special case effect params here
574564
if !infer_args && has_default {
@@ -577,10 +567,10 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
577567
.into()
578568
} else {
579569
if infer_args {
580-
self.lowerer.ct_infer(ty, Some(param), self.span).into()
570+
self.lowerer.ct_infer(Some(param), self.span).into()
581571
} else {
582572
// We've already errored above about the mismatch.
583-
ty::Const::new_misc_error(tcx, ty).into()
573+
ty::Const::new_misc_error(tcx).into()
584574
}
585575
}
586576
}
@@ -1930,7 +1920,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
19301920
///
19311921
/// Early-bound const parameters get lowered to [`ty::ConstKind::Param`]
19321922
/// and late-bound ones to [`ty::ConstKind::Bound`].
1933-
pub(crate) fn lower_const_param(&self, hir_id: HirId, param_ty: Ty<'tcx>) -> Const<'tcx> {
1923+
pub(crate) fn lower_const_param(&self, hir_id: HirId) -> Const<'tcx> {
19341924
let tcx = self.tcx();
19351925
match tcx.named_bound_var(hir_id) {
19361926
Some(rbv::ResolvedArg::EarlyBound(def_id)) => {
@@ -1940,12 +1930,12 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
19401930
let generics = tcx.generics_of(item_def_id);
19411931
let index = generics.param_def_id_to_index[&def_id];
19421932
let name = tcx.item_name(def_id);
1943-
ty::Const::new_param(tcx, ty::ParamConst::new(index, name), param_ty)
1933+
ty::Const::new_param(tcx, ty::ParamConst::new(index, name))
19441934
}
19451935
Some(rbv::ResolvedArg::LateBound(debruijn, index, _)) => {
1946-
ty::Const::new_bound(tcx, debruijn, ty::BoundVar::from_u32(index), param_ty)
1936+
ty::Const::new_bound(tcx, debruijn, ty::BoundVar::from_u32(index))
19471937
}
1948-
Some(rbv::ResolvedArg::Error(guar)) => ty::Const::new_error(tcx, guar, param_ty),
1938+
Some(rbv::ResolvedArg::Error(guar)) => ty::Const::new_error(tcx, guar),
19491939
arg => bug!("unexpected bound var resolution for {:?}: {arg:?}", hir_id),
19501940
}
19511941
}
@@ -2161,7 +2151,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
21612151
}
21622152
hir::TyKind::Array(ty, length) => {
21632153
let length = match length {
2164-
hir::ArrayLen::Infer(inf) => self.ct_infer(tcx.types.usize, None, inf.span),
2154+
hir::ArrayLen::Infer(inf) => self.ct_infer(None, inf.span),
21652155
hir::ArrayLen::Body(constant) => {
21662156
ty::Const::from_anon_const(tcx, constant.def_id)
21672157
}
@@ -2199,7 +2189,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
21992189
match tcx.lit_to_const(lit_input) {
22002190
Ok(c) => c,
22012191
Err(LitToConstError::Reported(err)) => {
2202-
ty::Const::new_error(tcx, err, ty)
2192+
ty::Const::new_error(tcx, err)
22032193
}
22042194
Err(LitToConstError::TypeError) => todo!(),
22052195
}
@@ -2220,19 +2210,20 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
22202210
.type_of(def_id)
22212211
.no_bound_vars()
22222212
.expect("const parameter types cannot be generic");
2223-
self.lower_const_param(expr.hir_id, ty)
2213+
self.lower_const_param(expr.hir_id)
22242214
}
22252215

22262216
_ => {
22272217
let err = tcx
22282218
.dcx()
22292219
.emit_err(crate::errors::NonConstRange { span: expr.span });
2230-
ty::Const::new_error(tcx, err, ty)
2220+
ty::Const::new_error(tcx, err)
22312221
}
22322222
};
2233-
self.record_ty(expr.hir_id, c.ty(), expr.span);
2223+
// THISPR
2224+
self.record_ty(expr.hir_id, todo!(), expr.span);
22342225
if let Some((id, span)) = neg {
2235-
self.record_ty(id, c.ty(), span);
2226+
self.record_ty(id, todo!(), span);
22362227
}
22372228
c
22382229
};

compiler/rustc_hir_analysis/src/hir_ty_lowering/object_safety.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
142142
let references_self = match pred.skip_binder().term.unpack() {
143143
ty::TermKind::Ty(ty) => ty.walk().any(|arg| arg == dummy_self.into()),
144144
ty::TermKind::Const(c) => {
145-
c.ty().walk().any(|arg| arg == dummy_self.into())
145+
// THISPR
146+
false
146147
}
147148
};
148149

compiler/rustc_hir_typeck/src/demand.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
350350
lt_op: |_| self.tcx.lifetimes.re_erased,
351351
ct_op: |ct| {
352352
if let ty::ConstKind::Infer(_) = ct.kind() {
353-
self.next_const_var(ct.ty(), DUMMY_SP)
353+
self.next_const_var(DUMMY_SP)
354354
} else {
355355
ct
356356
}

compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
436436

437437
pub fn lower_array_length(&self, length: &hir::ArrayLen<'tcx>) -> ty::Const<'tcx> {
438438
match length {
439-
hir::ArrayLen::Infer(inf) => self.ct_infer(self.tcx.types.usize, None, inf.span),
439+
hir::ArrayLen::Infer(inf) => self.ct_infer(None, inf.span),
440440
hir::ArrayLen::Body(anon_const) => {
441441
let span = self.tcx.def_span(anon_const.def_id);
442442
let c = ty::Const::from_anon_const(self.tcx, anon_const.def_id);
@@ -1296,20 +1296,10 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
12961296
&GenericParamDefKind::Const { has_default, is_host_effect },
12971297
GenericArg::Infer(inf),
12981298
) => {
1299-
let tcx = self.fcx.tcx();
1300-
13011299
if has_default && is_host_effect {
13021300
self.fcx.var_for_effect(param)
13031301
} else {
1304-
self.fcx
1305-
.ct_infer(
1306-
tcx.type_of(param.def_id)
1307-
.no_bound_vars()
1308-
.expect("const parameter types cannot be generic"),
1309-
Some(param),
1310-
inf.span,
1311-
)
1312-
.into()
1302+
self.fcx.ct_infer(Some(param), inf.span).into()
13131303
}
13141304
}
13151305
_ => unreachable!(),

0 commit comments

Comments
 (0)