check the types in ty::Value to value conversion

and remove `ty::Const::try_to_scalar` because it becomes redundant
This commit is contained in:
Lukas Markeffsky 2025-01-27 11:16:19 +00:00
parent 10fc0b159e
commit 0055fb92db
7 changed files with 75 additions and 22 deletions

View file

@ -2023,14 +2023,12 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
_ => None,
};
if let Some(tykind) = tykind
&& let hir::TyKind::Array(_, length) = tykind
&& let Some((scalar, ty)) = sz.found.try_to_scalar()
&& ty == self.tcx.types.usize
&& let hir::TyKind::Array(_, length_arg) = tykind
&& let Some(length_val) = sz.found.try_to_target_usize(self.tcx)
{
let span = length.span();
Some(TypeErrorAdditionalDiags::ConsiderSpecifyingLength {
span,
length: scalar.to_target_usize(&self.tcx).unwrap(),
span: length_arg.span(),
length: length_val,
})
} else {
None