File tree 2 files changed +8
-8
lines changed
compiler/rustc_middle/src
2 files changed +8
-8
lines changed Original file line number Diff line number Diff line change 33
33
#![ feature( generators) ]
34
34
#![ feature( get_mut_unchecked) ]
35
35
#![ feature( if_let_guard) ]
36
+ #![ feature( inline_const) ]
36
37
#![ feature( iter_from_generator) ]
37
38
#![ feature( local_key_cell_methods) ]
38
39
#![ feature( negative_impls) ]
Original file line number Diff line number Diff line change 1
1
use crate :: ty;
2
- use std:: intrinsics:: type_name;
3
2
use std:: mem:: { size_of, transmute_copy, MaybeUninit } ;
4
3
5
4
#[ derive( Copy , Clone ) ]
@@ -17,13 +16,13 @@ pub type Erase<T: Copy + EraseType> = Erased<impl Copy>;
17
16
18
17
#[ inline( always) ]
19
18
pub fn erase < T : EraseType > ( src : T ) -> Erase < T > {
20
- assert_eq ! (
21
- size_of :: < T > ( ) ,
22
- size_of:: <T :: Result >( ) ,
23
- "size of {} must match erased type {}" ,
24
- type_name :: < T > ( ) ,
25
- type_name :: < T :: Result > ( )
26
- ) ;
19
+ // Ensure the sizes match
20
+ const {
21
+ if std :: mem :: size_of :: < T > ( ) != std :: mem :: size_of :: < T :: Result > ( ) {
22
+ panic ! ( "size of T must match erased type T::Result" )
23
+ }
24
+ } ;
25
+
27
26
Erased :: < <T as EraseType >:: Result > {
28
27
// SAFETY: Is it safe to transmute to MaybeUninit for types with the same sizes.
29
28
data : unsafe { transmute_copy ( & src) } ,
You can’t perform that action at this time.
0 commit comments