Valtrees for primitive types are fine.

This commit is contained in:
Camille GILLOT 2023-10-14 13:31:32 +00:00
parent f6aa3ee7e8
commit 50559ceec4

View File

@ -509,8 +509,9 @@ pub fn is_deterministic(&self) -> bool {
Const::Ty(c) => match c.kind() {
ty::ConstKind::Param(..) => true,
// A valtree may be a reference. Valtree references correspond to a
// different allocation each time they are evaluated.
ty::ConstKind::Value(_) => false,
// different allocation each time they are evaluated. Valtrees for primitive
// types are fine though.
ty::ConstKind::Value(_) => c.ty().is_primitive(),
ty::ConstKind::Unevaluated(..) | ty::ConstKind::Expr(..) => false,
// Should not appear in runtime MIR.
ty::ConstKind::Infer(..)