From 2c612adc49354a43ebdbddf584b4da500a855d84 Mon Sep 17 00:00:00 2001 From: Michael Schimmel Date: Tue, 17 Feb 2026 11:33:32 +0100 Subject: [PATCH] Fixed warnings --- src/ast/compiler/binder.rs | 7 ++----- src/ast/compiler/bound_nodes.rs | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/ast/compiler/binder.rs b/src/ast/compiler/binder.rs index d0157ea..c81f84c 100644 --- a/src/ast/compiler/binder.rs +++ b/src/ast/compiler/binder.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use std::sync::{Arc, Mutex}; use crate::ast::nodes::{Node, UntypedKind}; use crate::ast::compiler::bound_nodes::{BoundKind, Address}; -use crate::ast::types::{Value, Identity}; +use crate::ast::types::Identity; #[derive(Debug, Clone)] struct CompilerScope { @@ -185,18 +185,15 @@ impl Binder { } // 2. Try enclosing scopes (capture chain) - let mut captured_addr: Option
= None; - // Walk backwards from parent of current function up to root (0) // We look for where the variable is DEFINED. for i in (0..current_fn_idx).rev() { let func = &self.functions[i]; if let Some(slot) = func.scope.resolve(name) { // Found definition! It's a Local variable in function 'i'. - captured_addr = Some(Address::Local(slot)); + let mut addr = Address::Local(slot); // Now we must propagate this capture down through all functions from i+1 to current. - let mut addr = captured_addr.unwrap(); for k in (i + 1)..=current_fn_idx { addr = Address::Upvalue(self.functions[k].add_upvalue(addr)); } diff --git a/src/ast/compiler/bound_nodes.rs b/src/ast/compiler/bound_nodes.rs index fab2b70..bca05f9 100644 --- a/src/ast/compiler/bound_nodes.rs +++ b/src/ast/compiler/bound_nodes.rs @@ -1,6 +1,6 @@ use std::sync::Arc; use crate::ast::types::Value; -use crate::ast::nodes::{Node, CustomNode}; +use crate::ast::nodes::Node; #[derive(Debug, Clone, Copy, PartialEq)] pub enum Address {