Skip to content

Commit

Permalink
Don't eval constants eagerly
Browse files Browse the repository at this point in the history
  • Loading branch information
Nadrieril committed Sep 18, 2024
1 parent 455817c commit b96e459
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions frontend/exporter/src/types/copied.rs
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ impl<'tcx, S: UnderOwnerState<'tcx>> SInto<S, ConstantExpr> for rustc_middle::mi
fn sinto(&self, s: &S) -> ConstantExpr {
use rustc_middle::mir::Const;
let tcx = s.base().tcx;
match self.eval_constant(s).as_ref().unwrap_or(self) {
match self {
Const::Val(const_value, ty) => const_value_to_constant_expr(
s,
ty.clone(),
Expand All @@ -239,7 +239,11 @@ impl<'tcx, S: UnderOwnerState<'tcx>> SInto<S, ConstantExpr> for rustc_middle::mi
.def_ident_span(ucv.def)
.unwrap_or_else(|| ucv.def.default_span(tcx));
if let Some(_) = ucv.promoted {
supposely_unreachable_fatal!(s[span], "PromotedConstant"; {ucv.def})
self.eval_constant(s)
.unwrap_or_else(|| {
supposely_unreachable_fatal!(s, "UnevalPromotedConstant"; {self, ucv});
})
.sinto(s)
} else {
match self.translate_uneval(s, ucv.shrink(), span) {
TranslateUnevalRes::EvaluatedConstant(c) => c.sinto(s),
Expand Down

0 comments on commit b96e459

Please sign in to comment.