Skip to content

Commit afa74de

Browse files
committed
Cursed gvn type_id test
1 parent 79fa8f8 commit afa74de

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

tests/mir-opt/gvn_type_id_polymorphic.rs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,20 @@
66
fn generic<T>() {}
77

88
const fn type_id_of_val<T: 'static>(_: &T) -> u128 {
9-
std::intrinsics::type_id::<T>()
9+
let name = std::intrinsics::type_name::<T>();
10+
let len = name.len() as u64;
11+
let len = u64::to_be_bytes(len);
12+
let mut ret = [0; 16];
13+
let mut i = 0;
14+
while i < 8 {
15+
ret[i] = len[i];
16+
i += 1;
17+
}
18+
while i < 16 {
19+
ret[i] = name.as_bytes()[i - 8];
20+
i += 1;
21+
}
22+
u128::from_be_bytes(ret)
1023
}
1124

1225
// EMIT_MIR gvn_type_id_polymorphic.cursed_is_i32.GVN.diff

0 commit comments

Comments
 (0)