"exact_div" =>
this.exact_div(this.read_immediate(args[0])?, this.read_immediate(args[1])?, dest)?,
- "forget" => {}
+ "forget" => {
+ // We get an argument... and forget about it.
+ }
#[rustfmt::skip]
| "likely"
#![feature(core_intrinsics)]
-use std::intrinsics::type_name;
+use std::intrinsics;
use std::mem::{size_of, size_of_val};
+struct Bomb;
+
+impl Drop for Bomb {
+ fn drop(&mut self) {
+ eprintln!("BOOM!");
+ }
+}
+
fn main() {
assert_eq!(size_of::<Option<i32>>(), 8);
assert_eq!(size_of_val(&()), 0);
assert_eq!(size_of_val(&[1, 2, 3] as &[i32]), 12);
assert_eq!(size_of_val("foobar"), 6);
- assert_eq!(type_name::<Option<i32>>(), "core::option::Option<i32>");
+ assert_eq!(intrinsics::type_name::<Option<i32>>(), "core::option::Option<i32>");
+
+ assert_eq!(intrinsics::likely(false), false);
+ assert_eq!(intrinsics::unlikely(true), true);
+
+ unsafe { intrinsics::forget(Bomb); }
}