feat: gc-arena (WIP, does not compile)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use hashbrown::HashMap;
|
||||
|
||||
use ecow::EcoString;
|
||||
use gc_arena::Collect;
|
||||
|
||||
use crate::ty::common::Const;
|
||||
use crate::ty::internal::Param;
|
||||
@@ -9,7 +9,8 @@ type Slice<T> = Box<[T]>;
|
||||
|
||||
pub type OpCodes = Slice<OpCode>;
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
#[derive(Debug, Clone, Copy, Collect)]
|
||||
#[collect(no_drop)]
|
||||
pub enum OpCode {
|
||||
/// load a constant onto stack
|
||||
Const { idx: usize },
|
||||
@@ -103,7 +104,8 @@ pub enum UnOp {
|
||||
Not,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Debug, Collect)]
|
||||
#[collect(no_drop)]
|
||||
pub struct Func {
|
||||
pub param: Param,
|
||||
pub opcodes: OpCodes,
|
||||
|
||||
Reference in New Issue
Block a user