diff --git a/src/elements/ops.rs b/src/elements/ops.rs index 34e0452..0f829af 100644 --- a/src/elements/ops.rs +++ b/src/elements/ops.rs @@ -48,6 +48,7 @@ impl Deserialize for Opcodes { } /// Initialization expression. +#[derive(Debug)] pub struct InitExpr(Vec); impl InitExpr { diff --git a/src/interpreter/program.rs b/src/interpreter/program.rs index c99a15e..ba586b6 100644 --- a/src/interpreter/program.rs +++ b/src/interpreter/program.rs @@ -28,11 +28,11 @@ impl ProgramInstance { /// Instantiate module. pub fn add_module(&self, name: &str, module: Module) -> Result, Error> { + let module_instance = Arc::new(ModuleInstance::new(Arc::downgrade(&self.essence), module)?); let mut modules = self.essence.modules.write(); match modules.entry(name.into()) { Entry::Occupied(_) => Err(Error::Program(format!("module {} already instantiated", name))), Entry::Vacant(entry) => { - let module_instance = Arc::new(ModuleInstance::new(Arc::downgrade(&self.essence), module)?); entry.insert(module_instance.clone()); Ok(module_instance) },