1
Fork 0

Stabilize const_panic

This commit is contained in:
Jacob Pratt 2021-10-04 00:33:43 -04:00
parent e737694a4d
commit bce8621983
No known key found for this signature in database
GPG key ID: B80E19E4662B5AA4
51 changed files with 100 additions and 229 deletions

View file

@ -887,8 +887,6 @@ impl Visitor<'tcx> for Checker<'mir, 'tcx> {
// At this point, we are calling a function, `callee`, whose `DefId` is known...
if is_lang_panic_fn(tcx, callee) {
self.check_op(ops::Panic);
// `begin_panic` and `panic_display` are generic functions that accept
// types other than str. Check to enforce that only str can be used in
// const-eval.

View file

@ -368,23 +368,6 @@ impl NonConstOp for MutDeref {
}
}
#[derive(Debug)]
pub struct Panic;
impl NonConstOp for Panic {
fn status_in_item(&self, _: &ConstCx<'_, '_>) -> Status {
Status::Unstable(sym::const_panic)
}
fn build_error(&self, ccx: &ConstCx<'_, 'tcx>, span: Span) -> DiagnosticBuilder<'tcx> {
feature_err(
&ccx.tcx.sess.parse_sess,
sym::const_panic,
span,
&format!("panicking in {}s is unstable", ccx.const_kind()),
)
}
}
/// A call to a `panic()` lang item where the first argument is _not_ a `&str`.
#[derive(Debug)]
pub struct PanicNonStr;