use rustc::mir::StaticKind;
Ok(match place_static.kind {
- StaticKind::Promoted(promoted) => {
+ StaticKind::Promoted(promoted, _) => {
let instance = self.frame().instance;
self.const_eval_raw(GlobalId {
instance,
})?
}
- StaticKind::Static(def_id) => {
+ StaticKind::Static => {
let ty = place_static.ty;
assert!(!ty.needs_subst());
let layout = self.layout_of(ty)?;
- let instance = ty::Instance::mono(*self.tcx, def_id);
+ let instance = ty::Instance::mono(*self.tcx, place_static.def_id);
let cid = GlobalId {
instance,
promoted: None
// their layout on return.
PlaceTy {
place: *return_place,
- layout: self
- .layout_of(self.monomorphize(self.frame().body.return_ty())?)?,
+ layout: self.layout_of(
+ self.subst_from_frame_and_normalize_erasing_regions(
+ self.frame().body.return_ty()
+ )
+ )?,
}
}
None => throw_unsup!(InvalidNullPointerUsage),