mirror of
https://github.com/Noratrieb/dilaria.git
synced 2026-01-15 01:45:02 +01:00
fix
This commit is contained in:
parent
5f9ca90fd5
commit
08d1f01802
5 changed files with 20 additions and 10 deletions
|
|
@ -64,7 +64,6 @@ use bumpalo::collections::Vec;
|
|||
use std::fmt::{Debug, Formatter};
|
||||
|
||||
/// This struct contains all data for a function.
|
||||
#[cfg_attr(feature = "_debug", derive(dbg_pls::DebugPls))]
|
||||
pub struct FnBlock<'bc> {
|
||||
/// The bytecode of the function
|
||||
pub code: Vec<'bc, Instr>,
|
||||
|
|
@ -136,3 +135,13 @@ pub enum Instr {
|
|||
/// Shrinks the stack by `usize` elements, should always be emitted before backwards jumps
|
||||
ShrinkStack(usize),
|
||||
}
|
||||
|
||||
#[cfg(feature = "_debug")]
|
||||
impl dbg_pls::DebugPls for FnBlock<'_> {
|
||||
fn fmt(&self, f: dbg_pls::Formatter<'_>) {
|
||||
f.debug_struct("FnBlock")
|
||||
.field("arity", &self.arity)
|
||||
.field("code", &self.code.as_slice())
|
||||
.finish_non_exhaustive()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
use crate::vm::Value;
|
||||
use crate::{HashMap, HashSet};
|
||||
use dbg_pls::DebugPls;
|
||||
use std::collections::LinkedList;
|
||||
use std::fmt::{Debug, Formatter};
|
||||
use std::hash::{Hash, Hasher};
|
||||
|
|
@ -19,9 +20,9 @@ pub struct Gc<T: ?Sized> {
|
|||
}
|
||||
|
||||
#[cfg(feature = "_debug")]
|
||||
impl<T: ?Sized> dbg_pls::DebugPls for Gc<T> {
|
||||
impl<T: ?Sized + DebugPls> dbg_pls::DebugPls for Gc<T> {
|
||||
fn fmt(&self, f: dbg_pls::Formatter<'_>) {
|
||||
todo!()
|
||||
DebugPls::fmt(self.deref(), f)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -208,7 +209,7 @@ impl Deref for Symbol {
|
|||
|
||||
impl Debug for Symbol {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||
self.as_str().fmt(f)
|
||||
Debug::fmt(self.as_str(), f)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ fn process_ast(program: &str, ast: &Program, mut runtime: RtAlloc, cfg: &mut Con
|
|||
match bytecode {
|
||||
Ok(code) => {
|
||||
if cfg.debug {
|
||||
println!("Bytecode:\n{:#?}\n", code);
|
||||
util::dbg("Bytecode:\n", code);
|
||||
}
|
||||
|
||||
let result = vm::execute(code, runtime, cfg);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue