diff --git a/src/ast/compiler/dumper.rs b/src/ast/compiler/dumper.rs index faace0f..d14147f 100644 --- a/src/ast/compiler/dumper.rs +++ b/src/ast/compiler/dumper.rs @@ -39,8 +39,9 @@ impl Dumper { BoundKind::Constant(v) => { self.log(&format!("Constant: {}", v), node); // Introspect Closure AST if possible - if let Value::Object(obj) = v { - if let Some(closure) = obj.as_any().downcast_ref::() { + if let Value::Object(obj) = v + && let Some(closure) = obj.as_any().downcast_ref::() + { self.indent += 1; self.write_indent(); self.output.push_str("--- Specialized Body ---\n"); @@ -58,7 +59,6 @@ impl Dumper { self.output.push('\n'); } self.indent -= 1; - } } }, BoundKind::Get { addr, name } => self.log(&format!("Get: {} ({:?})", name.name, addr), node), diff --git a/src/ast/compiler/lambda_collector.rs b/src/ast/compiler/lambda_collector.rs index 6cf4e0a..870c5b0 100644 --- a/src/ast/compiler/lambda_collector.rs +++ b/src/ast/compiler/lambda_collector.rs @@ -32,10 +32,10 @@ impl<'a> LambdaCollector<'a> { BoundKind::Set { addr, value } => { // Also track assignments to globals if they hold lambdas. - if let Address::Global(global_index) = addr { - if let BoundKind::Lambda { .. } = &value.kind { - self.registry.insert(*global_index, (**value).clone()); - } + if let Address::Global(global_index) = addr + && let BoundKind::Lambda { .. } = &value.kind + { + self.registry.insert(*global_index, (**value).clone()); } self.visit(value); } diff --git a/src/ast/environment.rs b/src/ast/environment.rs index f7ee9f2..6a97929 100644 --- a/src/ast/environment.rs +++ b/src/ast/environment.rs @@ -233,11 +233,11 @@ impl Environment { let mut vm = VM::new(self.global_values.clone()); let result = vm.run(node)?; - if let Value::Object(obj) = &result { - if let Some(closure) = obj.as_any().downcast_ref::() { - // Execute the script body - return vm.run(&closure.function_node); - } + if let Value::Object(obj) = &result + && let Some(closure) = obj.as_any().downcast_ref::() + { + // Execute the script body + return vm.run(&closure.function_node); } Ok(result) @@ -267,10 +267,10 @@ impl Environment { let mut result = vm.run_with_observer(&mut observer, &linked); // If result is a closure (script entry), execute the body too - if let Ok(Value::Object(obj)) = &result { - if let Some(closure) = obj.as_any().downcast_ref::() { - result = vm.run_with_observer(&mut observer, &closure.function_node); - } + if let Ok(Value::Object(obj)) = &result + && let Some(closure) = obj.as_any().downcast_ref::() + { + result = vm.run_with_observer(&mut observer, &closure.function_node); } Ok((result, observer.logs))