fn nonlocal_symbol(&self, name: &str) -> Option<Symbol> {
        for (non_local_name, symbol) in self.borrow_local_scope().non_locals.iter() {
            if non_local_name == name {
                return Some(symbol.clone());
            }
        }

        None
    }
/// Check the current scope for a non local symbol, e.i. a symbol declared
/// in an enclosing local scope but not the global scope.
Check the current scope for a non local symbol, e.i. a symbol declared
in an enclosing local scope but not the global scope.
Check the current scope for a non local symbol e . i . a symbol declared in an enclosing local scope but not the global scope .
fn nonlocal_symbol(&self, name: &str) -> Option<Symbol> {
        for (non_local_name, symbol) in self.borrow_local_scope().non_locals.iter() {
            if non_local_name == name {
                return Some(symbol.clone());
            }
        }
        None
    }
fn nonlocal_symbol ( & self , name : & str ) -> Option < Symbol > { for ( non_local_name , symbol ) in self . borrow_local_scope ( ) . non_locals . iter ( ) { if non_local_name == name { return Some ( symbol . clone ( ) ) ; } } None }
Check the current scope for a non local symbol, e.i.
Check the current scope for a non local symbol e . i .
&self
name
&str