feat: ir env (WIP)

This commit is contained in:
2025-05-30 18:29:04 +08:00
parent c548c4c6ac
commit 7d6168fdae
10 changed files with 500 additions and 164 deletions

View File

@@ -16,7 +16,7 @@ macro_rules! into {
}
pub struct Stack<T, const CAP: usize> {
items: [MaybeUninit<T>; CAP],
items: Box<[MaybeUninit<T>; CAP]>,
top: usize,
}
@@ -37,7 +37,11 @@ impl<T, const CAP: usize> Default for Stack<T, CAP> {
impl<T, const CAP: usize> Stack<T, CAP> {
pub fn new() -> Self {
Stack {
items: [const { MaybeUninit::uninit() }; CAP],
items: unsafe {
std::mem::transmute::<Box<MaybeUninit<[T; CAP]>>, Box<[MaybeUninit<T>; CAP]>>(
Box::new_uninit(),
)
},
top: 0,
}
}