use crate::build::ForGuard::{OutsideGuard, RefWithinGuard};
use crate::build::{BlockAnd, BlockAndExtension, Builder};
use crate::hair::*;
-use rustc::mir::interpret::{InterpError::Panic, PanicMessage::BoundsCheck};
+use rustc::mir::interpret::{PanicInfo::BoundsCheck};
use rustc::mir::*;
use rustc::ty::{CanonicalUserTypeAnnotation, Variance};
),
);
- let msg = Panic(BoundsCheck {
+ let msg = BoundsCheck {
len: Operand::Move(len),
index: Operand::Copy(Place::from(idx)),
- });
+ };
let success = this.assert(block, Operand::Move(lt), true, msg, expr_span);
success.and(slice.index(idx))
}
};
block.and(place)
}
- ExprKind::StaticRef { id } => block.and(Place::Base(PlaceBase::Static(Box::new(Static {
- ty: expr.ty,
- kind: StaticKind::Static(id),
- })))),
+ ExprKind::StaticRef { id } => block.and(Place {
+ base: PlaceBase::Static(Box::new(Static {
+ ty: expr.ty,
+ kind: StaticKind::Static(id),
+ })),
+ projection: None,
+ }),
ExprKind::PlaceTypeAscription { source, user_ty } => {
let place = unpack!(block = this.as_place(block, source));