Rollup merge of #62969 - saleemjaffer:declutter_interperror, r=RalfJung

Changing the structure of `mir::interpret::InterpError`

Implements [this](https://github.com/rust-rfcs/const-eval/issues/4#issuecomment-514559965)
This commit is contained in:
Mazdak Farrokhzad 2019-08-02 12:14:15 +02:00 committed by GitHub
commit 51dc78e4cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 442 additions and 382 deletions

View file

@ -2,7 +2,7 @@ use rustc::middle::lang_items;
use rustc::ty::{self, Ty, TypeFoldable, Instance};
use rustc::ty::layout::{self, LayoutOf, HasTyCtxt, FnTypeExt};
use rustc::mir::{self, Place, PlaceBase, Static, StaticKind};
use rustc::mir::interpret::PanicMessage;
use rustc::mir::interpret::PanicInfo;
use rustc_target::abi::call::{ArgType, FnType, PassMode, IgnoreMode};
use rustc_target::spec::abi::Abi;
use crate::base;
@ -368,7 +368,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
// checked operation, just a comparison with the minimum
// value, so we have to check for the assert message.
if !bx.check_overflow() {
if let PanicMessage::OverflowNeg = *msg {
if let PanicInfo::OverflowNeg = *msg {
const_cond = Some(expected);
}
}
@ -403,7 +403,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
// Put together the arguments to the panic entry point.
let (lang_item, args) = match msg {
PanicMessage::BoundsCheck { ref len, ref index } => {
PanicInfo::BoundsCheck { ref len, ref index } => {
let len = self.codegen_operand(&mut bx, len).immediate();
let index = self.codegen_operand(&mut bx, index).immediate();