@@ -251,11 +251,11 @@ impl<'a> VM<'a> {
251251 let ( params, _, _, _) = vm. functions [ fi] ;
252252 let bm = & vm. body_maps [ fi] ;
253253 params. iter ( ) . map ( |p| {
254- if p . starts_with ( "**" ) {
255- let slot = bm. get ( & alloc:: format!( "{}_0" , & p [ 2 .. ] ) ) . copied ( ) . unwrap_or ( usize:: MAX ) ;
254+ if let Some ( stripped ) = p . strip_prefix ( "**" ) {
255+ let slot = bm. get ( & alloc:: format!( "{}_0" , stripped ) ) . copied ( ) . unwrap_or ( usize:: MAX ) ;
256256 ( ParamKind :: DoubleStar , slot)
257- } else if p . starts_with ( '*' ) {
258- let slot = bm. get ( & alloc:: format!( "{}_0" , & p [ 1 .. ] ) ) . copied ( ) . unwrap_or ( usize:: MAX ) ;
257+ } else if let Some ( stripped ) = p . strip_prefix ( '*' ) {
258+ let slot = bm. get ( & alloc:: format!( "{}_0" , stripped ) ) . copied ( ) . unwrap_or ( usize:: MAX ) ;
259259 ( ParamKind :: Star , slot)
260260 } else {
261261 let slot = bm. get ( & alloc:: format!( "{}_0" , p) ) . copied ( ) . unwrap_or ( usize:: MAX ) ;
@@ -566,10 +566,10 @@ impl<'a> VM<'a> {
566566 if obj. is_heap ( )
567567 && let HeapObj :: Instance ( cls_val, _) = self . heap . get ( obj) {
568568 let cls_val = * cls_val;
569- if cls_val. is_heap ( ) {
570- if let HeapObj :: Class ( _, methods) = self . heap . get ( cls_val)
571- && let Some ( ( _, mv) ) = methods. iter ( ) . find ( |( n, _) | n == name. as_str ( ) ) {
572- let mv = * mv;
569+ if cls_val. is_heap ( )
570+ && let HeapObj :: Class ( _, methods) = self . heap . get ( cls_val)
571+ && let Some ( ( _, mv) ) = methods. iter ( ) . find ( |( n, _) | n == name. as_str ( ) ) {
572+ let mv = * mv;
573573 // Call the method with self prepended
574574 self . push ( mv) ;
575575 self . push ( obj) ;
@@ -578,7 +578,6 @@ impl<'a> VM<'a> {
578578 let encoded = ( ( kw_flat. len ( ) as u16 / 2 ) << 8 ) | argc;
579579 return self . exec_call ( encoded, chunk, slots) ;
580580 }
581- }
582581 }
583582 let method_id = handlers:: methods:: lookup_method ( ty, name. as_str ( ) )
584583 . ok_or ( VmErr :: Type ( "'object' has no attribute" ) ) ?;
0 commit comments