@@ -364,14 +364,14 @@ pub(super) fn explain(
364364 OP_INIT => {
365365 // start at <p2>
366366 state. visited [ state. program_i ] = true ;
367- state. program_i = usize:: try_from ( p2) . unwrap_or ( 0 ) ;
367+ state. program_i = usize:: try_from ( p2) . expect ( "opcode p2 should be non-negative" ) ;
368368 continue ;
369369 }
370370
371371 OP_GOTO => {
372372 // goto <p2>
373373 state. visited [ state. program_i ] = true ;
374- state. program_i = usize:: try_from ( p2) . unwrap_or ( 0 ) ;
374+ state. program_i = usize:: try_from ( p2) . expect ( "opcode p2 should be non-negative" ) ;
375375 continue ;
376376 }
377377
@@ -388,7 +388,7 @@ pub(super) fn explain(
388388 state. visited [ state. program_i ] = true ;
389389
390390 let mut branch_state = state. clone ( ) ;
391- branch_state. program_i = usize:: try_from ( p2) . unwrap_or ( 0 ) ;
391+ branch_state. program_i = usize:: try_from ( p2) . expect ( "branch p2 should be non-negative" ) ;
392392 states. push ( branch_state) ;
393393
394394 state. program_i += 1 ;
@@ -401,7 +401,7 @@ pub(super) fn explain(
401401 state. r . insert ( p1, RegDataType :: Int ( p3) ) ;
402402
403403 if p2 != 0 {
404- state. program_i = usize:: try_from ( p2) . unwrap_or ( 0 ) ;
404+ state. program_i = usize:: try_from ( p2) . expect ( "opcode p2 should be non-negative" ) ;
405405 } else {
406406 state. program_i += 1 ;
407407 }
@@ -413,10 +413,10 @@ pub(super) fn explain(
413413 state. visited [ state. program_i ] = true ;
414414 if let Some ( RegDataType :: Int ( yield_i) ) = state. r . get ( & p1) {
415415 if let Some ( ( _, yield_op, _, yield_p2, _, _) ) =
416- program. get ( usize:: try_from ( * yield_i) . unwrap_or ( 0 ) )
416+ program. get ( usize:: try_from ( * yield_i) . expect ( "yield index should be non-negative" ) )
417417 {
418418 if OP_YIELD == yield_op. as_str ( ) {
419- state. program_i = usize:: try_from ( * yield_p2) . unwrap_or ( 0 ) ;
419+ state. program_i = usize:: try_from ( * yield_p2) . expect ( "yield p2 should be non-negative" ) ;
420420 state. r . remove ( & p1) ;
421421 continue ;
422422 } else {
@@ -434,7 +434,7 @@ pub(super) fn explain(
434434 // jump to the instruction after the instruction pointed at by register p1
435435 state. visited [ state. program_i ] = true ;
436436 if let Some ( RegDataType :: Int ( return_i) ) = state. r . get ( & p1) {
437- state. program_i = usize:: try_from ( * return_i + 1 ) . unwrap_or ( 0 ) ;
437+ state. program_i = usize:: try_from ( * return_i + 1 ) . expect ( "return index should be non-negative" ) ;
438438 state. r . remove ( & p1) ;
439439 continue ;
440440 } else {
@@ -450,15 +450,15 @@ pub(super) fn explain(
450450
451451 //if yielding to a yield operation, go to the NEXT instruction after that instruction
452452 if program
453- . get ( usize:: try_from ( * yield_i) . unwrap_or ( 0 ) )
453+ . get ( usize:: try_from ( * yield_i) . expect ( "yield index should be non-negative" ) )
454454 . map ( |( _, yield_op, _, _, _, _) | yield_op. as_str ( ) )
455455 == Some ( OP_YIELD )
456456 {
457- state. program_i = usize:: try_from ( * yield_i + 1 ) . unwrap_or ( 0 ) ;
457+ state. program_i = usize:: try_from ( * yield_i + 1 ) . expect ( "yield+1 should be non-negative" ) ;
458458 * yield_i = program_i as i64 ;
459459 continue ;
460460 } else {
461- state. program_i = usize:: try_from ( * yield_i) . unwrap_or ( 0 ) ;
461+ state. program_i = usize:: try_from ( * yield_i) . expect ( "yield index should be non-negative" ) ;
462462 * yield_i = program_i as i64 ;
463463 continue ;
464464 }
@@ -472,15 +472,15 @@ pub(super) fn explain(
472472 state. visited [ state. program_i ] = true ;
473473
474474 let mut branch_state = state. clone ( ) ;
475- branch_state. program_i = usize:: try_from ( p1) . unwrap_or ( 0 ) ;
475+ branch_state. program_i = usize:: try_from ( p1) . expect ( "branch p1 should be non-negative" ) ;
476476 states. push ( branch_state) ;
477477
478478 let mut branch_state = state. clone ( ) ;
479- branch_state. program_i = usize:: try_from ( p2) . unwrap_or ( 0 ) ;
479+ branch_state. program_i = usize:: try_from ( p2) . expect ( "branch p2 should be non-negative" ) ;
480480 states. push ( branch_state) ;
481481
482482 let mut branch_state = state. clone ( ) ;
483- branch_state. program_i = usize:: try_from ( p3) . unwrap_or ( 0 ) ;
483+ branch_state. program_i = usize:: try_from ( p3) . expect ( "branch p3 should be non-negative" ) ;
484484 states. push ( branch_state) ;
485485 }
486486
@@ -515,7 +515,7 @@ pub(super) fn explain(
515515
516516 OP_MAKE_RECORD => {
517517 // p3 = Record([p1 .. p1 + p2])
518- let mut record = Vec :: with_capacity ( usize:: try_from ( p2) . unwrap_or ( 0 ) ) ;
518+ let mut record = Vec :: with_capacity ( usize:: try_from ( p2) . expect ( "record len should be non-negative" ) ) ;
519519 for reg in p1..p1 + p2 {
520520 record. push (
521521 state
@@ -565,7 +565,9 @@ pub(super) fn explain(
565565 //Create a new pointer which is referenced by p1
566566 state. p . insert (
567567 p1,
568- CursorDataType :: from_dense_record ( & vec ! [ ColumnType :: null( ) ; usize :: try_from( p2) . unwrap_or( 0 ) ] ) ,
568+ CursorDataType :: from_dense_record (
569+ & vec ! [ ColumnType :: null( ) ; usize :: try_from( p2) . expect( "record len should be non-negative" ) ] ,
570+ ) ,
569571 ) ;
570572 }
571573
0 commit comments