@@ -41,7 +41,7 @@ fn main_0() -> i32 {
4141 assert ! ( ( * s1. borrow( ) )
4242 . iter( )
4343 . copied( )
44- . take( ( * s1. borrow( ) ) . len( ) . saturating_sub ( 1 ) )
44+ . take( ( * s1. borrow( ) ) . len( ) - 1 )
4545 . eq( Ptr :: from_string_literal( b"hello" ) . to_c_string_iterator( ) ) ) ;
4646 let p1: Value < Ptr < u8 > > = Rc :: new ( RefCell :: new ( ( s1. as_pointer ( ) as Ptr < u8 > ) ) ) ;
4747 assert ! ( ( ( ( ( * p1. borrow( ) ) . offset( ( 0 ) as isize ) . read( ) ) as i32 ) == ( ( 'h' as u8 ) as i32 ) ) ) ;
@@ -98,11 +98,8 @@ fn main_0() -> i32 {
9898 ( * i. borrow_mut ( ) ) . prefix_inc ( ) ;
9999 }
100100 let s3: Value < Vec < u8 > > = Rc :: new ( RefCell :: new ( {
101- let mut __tmp1 = ( * s2. borrow ( ) ) [ ( 2_u64 ) as usize
102- ..:: std:: cmp:: min (
103- ( 2_u64 + 5_u64 ) as usize ,
104- ( * s2. borrow ( ) ) . len ( ) . saturating_sub ( 1 ) ,
105- ) ]
101+ let mut __tmp1 = ( * s2. borrow ( ) )
102+ [ ( 2_u64 ) as usize ..:: std:: cmp:: min ( ( 2_u64 + 5_u64 ) as usize , ( * s2. borrow ( ) ) . len ( ) - 1 ) ]
106103 . to_vec ( ) ;
107104 __tmp1. push ( 0 ) ;
108105 __tmp1
@@ -123,18 +120,20 @@ fn main_0() -> i32 {
123120 let s4: Value < Vec < u8 > > = Rc :: new ( RefCell :: new ( {
124121 let mut __tmp1 = ( * s1. borrow ( ) ) [ ( 1_u64 ) as usize
125122 ..:: std:: cmp:: min (
126- ( 1_u64 + {
127- let __lookup: Vec < u8 > = Ptr :: from_string_literal ( b"l" )
128- . to_c_string_iterator ( )
129- . collect ( ) ;
130- ( * s1. borrow ( ) )
123+ ( 1_u64
124+ + match ( * s1. borrow ( ) )
131125 . iter ( )
132- . take ( ( * s1. borrow ( ) ) . len ( ) . saturating_sub ( 1 ) )
133- . rposition ( |& x| __lookup. contains ( & x) )
134- . map ( |idx| idx as u64 )
135- . unwrap_or ( u64:: MAX )
136- } ) as usize ,
137- ( * s1. borrow ( ) ) . len ( ) . saturating_sub ( 1 ) ,
126+ . take ( ( * s1. borrow ( ) ) . len ( ) - 1 )
127+ . rposition ( |& x| {
128+ Ptr :: from_string_literal ( b"l" )
129+ . to_c_string_iterator ( )
130+ . position ( |ch| ch == x)
131+ . is_some ( )
132+ } ) {
133+ Some ( idx) => idx as u64 ,
134+ None => u64:: MAX ,
135+ } ) as usize ,
136+ ( * s1. borrow ( ) ) . len ( ) - 1 ,
138137 ) ]
139138 . to_vec ( ) ;
140139 __tmp1. push ( 0 ) ;
@@ -211,7 +210,7 @@ fn main_0() -> i32 {
211210 assert ! ( ( * string. borrow( ) )
212211 . iter( )
213212 . copied( )
214- . take( ( * string. borrow( ) ) . len( ) . saturating_sub ( 1 ) )
213+ . take( ( * string. borrow( ) ) . len( ) - 1 )
215214 . eq( Ptr :: from_string_literal( b"bar" ) . to_c_string_iterator( ) ) ) ;
216215 {
217216 ( * string. borrow_mut ( ) ) . pop ( ) ;
@@ -240,7 +239,7 @@ fn main_0() -> i32 {
240239 assert ! ( ( * string. borrow( ) )
241240 . iter( )
242241 . copied( )
243- . take( ( * string. borrow( ) ) . len( ) . saturating_sub ( 1 ) )
242+ . take( ( * string. borrow( ) ) . len( ) - 1 )
244243 . eq( Ptr :: from_string_literal( b"bar" ) . to_c_string_iterator( ) ) ) ;
245244 {
246245 ( * string. borrow_mut ( ) ) . pop ( ) ;
@@ -390,10 +389,7 @@ fn main_0() -> i32 {
390389 ) ;
391390 let substr_0: Value < Vec < u8 > > = Rc :: new ( RefCell :: new ( {
392391 let mut __tmp1 = ( * result. borrow ( ) ) [ ( 5_u64 ) as usize
393- ..:: std:: cmp:: min (
394- ( 5_u64 + 3_u64 ) as usize ,
395- ( * result. borrow ( ) ) . len ( ) . saturating_sub ( 1 ) ,
396- ) ]
392+ ..:: std:: cmp:: min ( ( 5_u64 + 3_u64 ) as usize , ( * result. borrow ( ) ) . len ( ) - 1 ) ]
397393 . to_vec ( ) ;
398394 __tmp1. push ( 0 ) ;
399395 __tmp1
@@ -419,10 +415,7 @@ fn main_0() -> i32 {
419415 ) ;
420416 let substr_1: Value < Vec < u8 > > = Rc :: new ( RefCell :: new ( {
421417 let mut __tmp1 = ( * result. borrow ( ) ) [ ( 0_u64 ) as usize
422- ..:: std:: cmp:: min (
423- ( 0_u64 + 5_u64 ) as usize ,
424- ( * result. borrow ( ) ) . len ( ) . saturating_sub ( 1 ) ,
425- ) ]
418+ ..:: std:: cmp:: min ( ( 0_u64 + 5_u64 ) as usize , ( * result. borrow ( ) ) . len ( ) - 1 ) ]
426419 . to_vec ( ) ;
427420 __tmp1. push ( 0 ) ;
428421 __tmp1
@@ -460,10 +453,7 @@ fn main_0() -> i32 {
460453 ) ;
461454 let substr_2: Value < Vec < u8 > > = Rc :: new ( RefCell :: new ( {
462455 let mut __tmp1 = ( * result. borrow ( ) ) [ ( 0_u64 ) as usize
463- ..:: std:: cmp:: min (
464- ( 0_u64 + 15_u64 ) as usize ,
465- ( * result. borrow ( ) ) . len ( ) . saturating_sub ( 1 ) ,
466- ) ]
456+ ..:: std:: cmp:: min ( ( 0_u64 + 15_u64 ) as usize , ( * result. borrow ( ) ) . len ( ) - 1 ) ]
467457 . to_vec ( ) ;
468458 __tmp1. push ( 0 ) ;
469459 __tmp1
@@ -517,52 +507,58 @@ fn main_0() -> i32 {
517507 . read( ) ) as i32 )
518508 == ( ( 'o' as u8 ) as i32 ) )
519509 ) ;
520- let pos: Value < u64 > = Rc :: new ( RefCell :: new ( {
521- let __lookup: Vec < u8 > = Ptr :: from_string_literal ( b"b" )
522- . to_c_string_iterator ( )
523- . collect ( ) ;
524- ( * result. borrow ( ) )
510+ let pos: Value < u64 > = Rc :: new ( RefCell :: new (
511+ match ( * result. borrow ( ) )
525512 . iter ( )
526- . take ( ( * result. borrow ( ) ) . len ( ) . saturating_sub ( 1 ) )
527- . rposition ( |& x| __lookup. contains ( & x) )
528- . map ( |idx| idx as u64 )
529- . unwrap_or ( u64:: MAX )
530- } ) ) ;
513+ . take ( ( * result. borrow ( ) ) . len ( ) - 1 )
514+ . rposition ( |& x| {
515+ Ptr :: from_string_literal ( b"b" )
516+ . to_c_string_iterator ( )
517+ . position ( |ch| ch == x)
518+ . is_some ( )
519+ } ) {
520+ Some ( idx) => idx as u64 ,
521+ None => u64:: MAX ,
522+ } ,
523+ ) ) ;
531524 assert ! ( ( ( * pos. borrow( ) ) == 0_u64 ) ) ;
532- ( * pos. borrow_mut ( ) ) = {
533- let __lookup: Vec < u8 > = Ptr :: from_string_literal ( b"f" )
534- . to_c_string_iterator ( )
535- . collect ( ) ;
536- ( * result. borrow ( ) )
537- . iter ( )
538- . take ( ( * result. borrow ( ) ) . len ( ) . saturating_sub ( 1 ) )
539- . rposition ( |& x| __lookup. contains ( & x) )
540- . map ( |idx| idx as u64 )
541- . unwrap_or ( u64:: MAX )
525+ ( * pos. borrow_mut ( ) ) = match ( * result. borrow ( ) )
526+ . iter ( )
527+ . take ( ( * result. borrow ( ) ) . len ( ) - 1 )
528+ . rposition ( |& x| {
529+ Ptr :: from_string_literal ( b"f" )
530+ . to_c_string_iterator ( )
531+ . position ( |ch| ch == x)
532+ . is_some ( )
533+ } ) {
534+ Some ( idx) => idx as u64 ,
535+ None => u64:: MAX ,
542536 } ;
543537 assert ! ( ( ( * pos. borrow( ) ) == 5_u64 ) ) ;
544- ( * pos. borrow_mut ( ) ) = {
545- let __lookup: Vec < u8 > = Ptr :: from_string_literal ( b"o" )
546- . to_c_string_iterator ( )
547- . collect ( ) ;
548- ( * result. borrow ( ) )
549- . iter ( )
550- . take ( ( * result. borrow ( ) ) . len ( ) . saturating_sub ( 1 ) )
551- . rposition ( |& x| __lookup. contains ( & x) )
552- . map ( |idx| idx as u64 )
553- . unwrap_or ( u64:: MAX )
538+ ( * pos. borrow_mut ( ) ) = match ( * result. borrow ( ) )
539+ . iter ( )
540+ . take ( ( * result. borrow ( ) ) . len ( ) - 1 )
541+ . rposition ( |& x| {
542+ Ptr :: from_string_literal ( b"o" )
543+ . to_c_string_iterator ( )
544+ . position ( |ch| ch == x)
545+ . is_some ( )
546+ } ) {
547+ Some ( idx) => idx as u64 ,
548+ None => u64:: MAX ,
554549 } ;
555550 assert ! ( ( ( * pos. borrow( ) ) == 7_u64 ) ) ;
556- ( * pos. borrow_mut ( ) ) = {
557- let __lookup: Vec < u8 > = Ptr :: from_string_literal ( b"x" )
558- . to_c_string_iterator ( )
559- . collect ( ) ;
560- ( * result. borrow ( ) )
561- . iter ( )
562- . take ( ( * result. borrow ( ) ) . len ( ) . saturating_sub ( 1 ) )
563- . rposition ( |& x| __lookup. contains ( & x) )
564- . map ( |idx| idx as u64 )
565- . unwrap_or ( u64:: MAX )
551+ ( * pos. borrow_mut ( ) ) = match ( * result. borrow ( ) )
552+ . iter ( )
553+ . take ( ( * result. borrow ( ) ) . len ( ) - 1 )
554+ . rposition ( |& x| {
555+ Ptr :: from_string_literal ( b"x" )
556+ . to_c_string_iterator ( )
557+ . position ( |ch| ch == x)
558+ . is_some ( )
559+ } ) {
560+ Some ( idx) => idx as u64 ,
561+ None => u64:: MAX ,
566562 } ;
567563 assert ! ( ( ( * pos. borrow( ) ) == ( -1_i64 as u64 ) ) ) ;
568564 let string_to_cast: Value < Vec < u8 > > = Rc :: new ( RefCell :: new (
0 commit comments