#[derive(Debug)]
pub struct HeapAllocation;
impl NonConstOp for HeapAllocation {
- const IS_SUPPORTED_IN_MIRI: bool = false;
-
fn emit_error(&self, item: &Item<'_, '_>, span: Span) {
let mut err = struct_span_err!(
item.tcx.sess,
--- /dev/null
+// compile-flags: -Zunleash-the-miri-inside-of-you
+#![feature(const_mut_refs, box_syntax)]
+#![deny(const_err)]
+
+use std::mem::ManuallyDrop;
+
+fn main() {}
+
+static TEST_BAD: &mut i32 = {
+ &mut *(box 0)
+ //~^ WARN skipping const check
+ //~| ERROR could not evaluate static initializer
+ //~| NOTE heap allocations
+};
--- /dev/null
+warning: skipping const checks
+ --> $DIR/box.rs:10:11
+ |
+LL | &mut *(box 0)
+ | ^^^^^^^
+
+error[E0080]: could not evaluate static initializer
+ --> $DIR/box.rs:10:11
+ |
+LL | &mut *(box 0)
+ | ^^^^^^^ "heap allocations via `box` keyword" needs an rfc before being allowed inside constants
+
+error: aborting due to previous error; 1 warning emitted
+
+For more information about this error, try `rustc --explain E0080`.