- let constant = cx.tcx.const_eval_poly(def_id).ok();
- if let Some(Constant::Int(val)) = constant.and_then(miri_to_const) {
- let mut ty = cx.tcx.type_of(def_id);
- if let ty::Adt(adt, _) = ty.kind {
+ let mut ty = cx.tcx.type_of(def_id.to_def_id());
+ let constant = cx
+ .tcx
+ .const_eval_poly(def_id.to_def_id())
+ .ok()
+ .map(|val| rustc_middle::mir::ConstantKind::from_value(val, ty));
+ if let Some(Constant::Int(val)) = constant.and_then(|c| miri_to_const(cx.tcx, c)) {
+ if let ty::Adt(adt, _) = ty.kind() {