#[inline]
#[unstable(feature = "forget_unsized", issue = "none")]
pub fn forget_unsized<T: ?Sized>(t: T) {
+ #[cfg(bootstrap)]
// SAFETY: the forget intrinsic could be safe, but there's no point in making it safe since
// we'll be implementing this function soon via `ManuallyDrop`
- unsafe { intrinsics::forget(t) }
+ unsafe {
+ intrinsics::forget(t)
+ }
+ #[cfg(not(bootstrap))]
+ intrinsics::forget(t)
}
/// Returns the size of a type in bytes.
fn forget(_1: T) -> () {
debug t => _1; // in scope 0 at $DIR/lower_intrinsics.rs:18:18: 18:19
let mut _0: (); // return place in scope 0 at $DIR/lower_intrinsics.rs:18:24: 18:24
- let _2: (); // in scope 0 at $DIR/lower_intrinsics.rs:19:14: 19:41
- let mut _3: T; // in scope 0 at $DIR/lower_intrinsics.rs:19:39: 19:40
- scope 1 {
- }
+ let mut _2: T; // in scope 0 at $DIR/lower_intrinsics.rs:19:30: 19:31
bb0: {
- StorageLive(_2); // scope 0 at $DIR/lower_intrinsics.rs:19:5: 19:43
- StorageLive(_3); // scope 1 at $DIR/lower_intrinsics.rs:19:39: 19:40
- _3 = move _1; // scope 1 at $DIR/lower_intrinsics.rs:19:39: 19:40
-- _2 = std::intrinsics::forget::<T>(move _3) -> bb1; // scope 1 at $DIR/lower_intrinsics.rs:19:14: 19:41
+ StorageLive(_2); // scope 0 at $DIR/lower_intrinsics.rs:19:30: 19:31
+ _2 = move _1; // scope 0 at $DIR/lower_intrinsics.rs:19:30: 19:31
+- _0 = std::intrinsics::forget::<T>(move _2) -> bb1; // scope 0 at $DIR/lower_intrinsics.rs:19:5: 19:32
- // mir::Constant
-- // + span: $DIR/lower_intrinsics.rs:19:14: 19:38
-- // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(T) {std::intrinsics::forget::<T>}, val: Value(Scalar(<ZST>)) }
-+ _2 = const (); // scope 1 at $DIR/lower_intrinsics.rs:19:14: 19:41
-+ goto -> bb1; // scope 1 at $DIR/lower_intrinsics.rs:19:14: 19:41
+- // + span: $DIR/lower_intrinsics.rs:19:5: 19:29
+- // + literal: Const { ty: extern "rust-intrinsic" fn(T) {std::intrinsics::forget::<T>}, val: Value(Scalar(<ZST>)) }
++ _0 = const (); // scope 0 at $DIR/lower_intrinsics.rs:19:5: 19:32
++ goto -> bb1; // scope 0 at $DIR/lower_intrinsics.rs:19:5: 19:32
}
bb1: {
- StorageDead(_3); // scope 1 at $DIR/lower_intrinsics.rs:19:40: 19:41
- StorageDead(_2); // scope 0 at $DIR/lower_intrinsics.rs:19:43: 19:44
- _0 = const (); // scope 0 at $DIR/lower_intrinsics.rs:18:24: 20:2
+ StorageDead(_2); // scope 0 at $DIR/lower_intrinsics.rs:19:31: 19:32
goto -> bb2; // scope 0 at $DIR/lower_intrinsics.rs:20:1: 20:2
}