Reduce size of InterpErrorInfo to 8 bytes
This commit is contained in:
@@ -84,7 +84,11 @@ impl<'tcx> ConstEvalErr<'tcx> {
|
||||
{
|
||||
error.print_backtrace();
|
||||
let stacktrace = ecx.generate_stacktrace();
|
||||
ConstEvalErr { error: error.kind, stacktrace, span: span.unwrap_or_else(|| ecx.cur_span()) }
|
||||
ConstEvalErr {
|
||||
error: error.into_kind(),
|
||||
stacktrace,
|
||||
span: span.unwrap_or_else(|| ecx.cur_span()),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn struct_error(
|
||||
|
||||
@@ -230,7 +230,7 @@ pub fn eval_to_const_value_raw_provider<'tcx>(
|
||||
};
|
||||
return eval_nullary_intrinsic(tcx, key.param_env, def_id, substs).map_err(|error| {
|
||||
let span = tcx.def_span(def_id);
|
||||
let error = ConstEvalErr { error: error.kind, stacktrace: vec![], span };
|
||||
let error = ConstEvalErr { error: error.into_kind(), stacktrace: vec![], span };
|
||||
error.report_as_error(tcx.at(span), "could not evaluate nullary intrinsic")
|
||||
});
|
||||
}
|
||||
|
||||
@@ -245,8 +245,8 @@ impl<'mir, 'tcx> interpret::Machine<'mir, 'tcx> for CompileTimeInterpreter<'mir,
|
||||
Ok(Some(match ecx.load_mir(instance.def, None) {
|
||||
Ok(body) => body,
|
||||
Err(err) => {
|
||||
if let err_unsup!(NoMirFor(did)) = err.kind {
|
||||
let path = ecx.tcx.def_path_str(did);
|
||||
if let err_unsup!(NoMirFor(did)) = err.kind() {
|
||||
let path = ecx.tcx.def_path_str(*did);
|
||||
return Err(ConstEvalErrKind::NeedsRfc(format!(
|
||||
"calling extern function `{}`",
|
||||
path
|
||||
|
||||
Reference in New Issue
Block a user