@@ -255,14 +255,17 @@ impl Scope {
255255 self . vars
256256 . insert ( new_name. to_string ( ) , NewIdentifierType :: List ( new_var) ) ;
257257 } else {
258- self . parent_scope . as_mut ( ) . map_or_else ( || error ( line, "variable not found" ) , |parent| {
259- parent. set_var (
260- name,
261- & mut new_val. to_vec_literaltype ( line) ,
262- recurse,
263- line,
264- ) ;
265- } ) ;
258+ self . parent_scope . as_mut ( ) . map_or_else (
259+ || error ( line, "variable not found" ) ,
260+ |parent| {
261+ parent. set_var (
262+ name,
263+ & mut new_val. to_vec_literaltype ( line) ,
264+ recurse,
265+ line,
266+ ) ;
267+ } ,
268+ ) ;
266269 }
267270 } else {
268271 let mut new_var: Box < NewList > = match self . get_var ( new_name, line) {
@@ -289,7 +292,10 @@ impl Scope {
289292 if self . has_var ( name, false ) {
290293 self . vars . insert ( name. to_string ( ) , new_val) ;
291294 } else {
292- self . parent_scope . as_mut ( ) . map_or_else ( || error ( line, "variable not found" ) , |parent| parent. set_var ( name, value, recurse, line) ) ;
295+ self . parent_scope . as_mut ( ) . map_or_else (
296+ || error ( line, "variable not found" ) ,
297+ |parent| parent. set_var ( name, value, recurse, line) ,
298+ ) ;
293299 }
294300 } else {
295301 self . vars . insert ( name. to_string ( ) , new_val) ;
@@ -335,7 +341,10 @@ impl Scope {
335341 NewIdentifierType :: Vairable ( _) => v. clone ( ) ,
336342 NewIdentifierType :: List ( list) => NewIdentifierType :: List ( list. clone ( ) ) ,
337343 } ,
338- None => self . parent_scope . as_mut ( ) . map_or_else ( || error ( line, format ! ( "variable not found {name}" ) ) , |parent| parent. get_var ( name, line) ) ,
344+ None => self . parent_scope . as_mut ( ) . map_or_else (
345+ || error ( line, format ! ( "variable not found {name}" ) ) ,
346+ |parent| parent. get_var ( name, line) ,
347+ ) ,
339348 }
340349 }
341350 pub fn set_function ( & mut self , name : char , args : Vec < Thing > , body : f64 ) {
@@ -344,7 +353,10 @@ impl Scope {
344353 pub fn get_function ( & self , name : char ) -> Option < ( Vec < Thing > , f64 ) > {
345354 match self . function . get ( & name) {
346355 Some ( ( args, body) ) => Some ( ( args. clone ( ) , * body) ) ,
347- None => self . parent_scope . as_ref ( ) . and_then ( |parent| parent. get_function ( name) )
356+ None => self
357+ . parent_scope
358+ . as_ref ( )
359+ . and_then ( |parent| parent. get_function ( name) ) ,
348360 }
349361 }
350362 pub fn delete_var ( & mut self , name : & str ) -> Option < NewIdentifierType > {
@@ -362,11 +374,16 @@ impl Scope {
362374 if self . vars . contains_key ( name) {
363375 true
364376 } else {
365- self . parent_scope . as_ref ( ) . map_or ( false , |parent| parent. has_var ( name, recurse) )
377+ self . parent_scope
378+ . as_ref ( )
379+ . map_or ( false , |parent| parent. has_var ( name, recurse) )
366380 }
367381 }
368382 pub fn drop_scope ( & mut self ) {
369- let p_scope: Self = self . parent_scope . take ( ) . map_or_else ( || error ( 0 , "no parent scope" ) , |scope| * scope) ;
383+ let p_scope: Self = self
384+ . parent_scope
385+ . take ( )
386+ . map_or_else ( || error ( 0 , "no parent scope" ) , |scope| * scope) ;
370387 * self = p_scope;
371388 }
372389
@@ -461,14 +478,26 @@ impl Eval {
461478 }
462479 }
463480 IdentifierType :: List ( ref list) => {
464- let car: LiteralOrFile = self . find_pointer_in_other_stuff ( & list. car ) . map_or_else ( || LiteralOrFile :: Literal ( LiteralType :: from_other_stuff (
465- & list. car ,
466- variable. line ,
467- ) ) , |pointer| pointer) ;
468- let cdr: LiteralOrFile = self . find_pointer_in_other_stuff ( & list. cdr ) . map_or_else ( || LiteralOrFile :: Literal ( LiteralType :: from_other_stuff (
469- & list. cdr ,
470- variable. line ,
471- ) ) , |pointer| pointer) ;
481+ let car: LiteralOrFile =
482+ self . find_pointer_in_other_stuff ( & list. car ) . map_or_else (
483+ || {
484+ LiteralOrFile :: Literal ( LiteralType :: from_other_stuff (
485+ & list. car ,
486+ variable. line ,
487+ ) )
488+ } ,
489+ |pointer| pointer,
490+ ) ;
491+ let cdr: LiteralOrFile =
492+ self . find_pointer_in_other_stuff ( & list. cdr ) . map_or_else (
493+ || {
494+ LiteralOrFile :: Literal ( LiteralType :: from_other_stuff (
495+ & list. cdr ,
496+ variable. line ,
497+ ) )
498+ } ,
499+ |pointer| pointer,
500+ ) ;
472501 self . scope . set_var (
473502 & variable. name ,
474503 & mut vec ! [ car, cdr] ,
@@ -478,7 +507,13 @@ impl Eval {
478507 }
479508 } ,
480509 Thing :: Return ( os, line) => {
481- let ret: LiteralOrFile = os. map_or ( LiteralOrFile :: Literal ( LiteralType :: Hempty ) , |os| self . find_pointer_in_other_stuff ( & os) . map_or_else ( || LiteralOrFile :: Literal ( LiteralType :: from_other_stuff ( & os, line) ) , |identifier| identifier) ) ;
510+ let ret: LiteralOrFile =
511+ os. map_or ( LiteralOrFile :: Literal ( LiteralType :: Hempty ) , |os| {
512+ self . find_pointer_in_other_stuff ( & os) . map_or_else (
513+ || LiteralOrFile :: Literal ( LiteralType :: from_other_stuff ( & os, line) ) ,
514+ |identifier| identifier,
515+ )
516+ } ) ;
482517 return Some ( Stopper :: Return ( ret) ) ;
483518 }
484519 Thing :: Expression ( expr) => {
0 commit comments