File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -109,8 +109,10 @@ fn f30<T1: Default + Clone>(a0: usize) -> Vec<Value<Vec<T1>>> {
109109 . collect :: < Vec < _ > > ( )
110110}
111111
112- fn f31 < T1 : ByteRepr + Clone > ( a0 : Ptr < Vec < Value < Vec < T1 > > > > , a1 : Vec < T1 > ) {
113- a0. with_mut ( |__v : & mut Vec < Value < Vec < T1 > > > | __v. push ( Rc :: new ( RefCell :: new ( a1) ) ) )
112+ fn f31 < T1 : ByteRepr + Clone > ( a0 : Ptr < Vec < Value < Vec < T1 > > > > , a1 : & mut Vec < T1 > ) {
113+ a0. with_mut ( |__v : & mut Vec < Value < Vec < T1 > > > | {
114+ __v. push ( Rc :: new ( RefCell :: new ( std:: mem:: take ( & mut * a1) ) ) )
115+ } )
114116}
115117
116118fn f32 < T1 : Default + ByteRepr > ( a0 : Ptr < Vec < Value < Vec < T1 > > > > , a1 : usize ) {
Original file line number Diff line number Diff line change @@ -138,8 +138,8 @@ unsafe fn f30<T1: Default + Clone>(a0: usize) -> Vec<Vec<T1>> {
138138 . map ( |_| <Vec < T1 > >:: default ( ) )
139139 . collect :: < Vec < _ > > ( )
140140}
141- unsafe fn f31 < T1 > ( a0 : & mut Vec < Vec < T1 > > , a1 : Vec < T1 > ) {
142- a0. push ( a1 )
141+ unsafe fn f31 < T1 > ( a0 : & mut Vec < Vec < T1 > > , a1 : & mut Vec < T1 > ) {
142+ a0. push ( std :: mem :: take ( & mut * a1 ) )
143143}
144144unsafe fn f32 < T1 : Default > ( a0 : & mut Vec < Vec < T1 > > , a1 : usize ) {
145145 a0. resize_with ( a1 as usize , || <Vec < T1 > >:: default ( ) )
Original file line number Diff line number Diff line change @@ -52,15 +52,21 @@ fn main_0() -> i32 {
5252 let m: Value < Vec < Value < Vec < i32 > > > > = Rc :: new ( RefCell :: new ( Vec :: new ( ) ) ) ;
5353 let v1: Value < Vec < i32 > > = Rc :: new ( RefCell :: new ( Vec :: new ( ) ) ) ;
5454 ( m. as_pointer ( ) as Ptr < Vec < Value < Vec < i32 > > > > ) . with_mut ( |__v : & mut Vec < Value < Vec < i32 > > > | {
55- __v. push ( Rc :: new ( RefCell :: new ( ( * v1. borrow ( ) ) . clone ( ) ) ) )
55+ __v. push ( Rc :: new ( RefCell :: new ( std:: mem:: take (
56+ & mut ( * v1. borrow_mut ( ) ) ,
57+ ) ) ) )
5658 } ) ;
5759 let v2: Value < Vec < i32 > > = Rc :: new ( RefCell :: new ( Vec :: new ( ) ) ) ;
5860 ( m. as_pointer ( ) as Ptr < Vec < Value < Vec < i32 > > > > ) . with_mut ( |__v : & mut Vec < Value < Vec < i32 > > > | {
59- __v. push ( Rc :: new ( RefCell :: new ( ( * v2. borrow ( ) ) . clone ( ) ) ) )
61+ __v. push ( Rc :: new ( RefCell :: new ( std:: mem:: take (
62+ & mut ( * v2. borrow_mut ( ) ) ,
63+ ) ) ) )
6064 } ) ;
6165 let v3: Value < Vec < i32 > > = Rc :: new ( RefCell :: new ( Vec :: new ( ) ) ) ;
6266 ( m. as_pointer ( ) as Ptr < Vec < Value < Vec < i32 > > > > ) . with_mut ( |__v : & mut Vec < Value < Vec < i32 > > > | {
63- __v. push ( Rc :: new ( RefCell :: new ( ( * v3. borrow ( ) ) . clone ( ) ) ) )
67+ __v. push ( Rc :: new ( RefCell :: new ( std:: mem:: take (
68+ & mut ( * v3. borrow_mut ( ) ) ,
69+ ) ) ) )
6470 } ) ;
6571 ' loop_: for mut row in m. as_pointer ( ) as Ptr < Value < Vec < i32 > > > {
6672 let row: Ptr < Vec < i32 > > = row. upgrade ( ) . deref ( ) . as_pointer ( ) ;
Original file line number Diff line number Diff line change @@ -47,11 +47,11 @@ unsafe fn main_0() -> i32 {
4747 }
4848 let mut m: Vec < Vec < i32 > > = Vec :: new ( ) ;
4949 let mut v1: Vec < i32 > = Vec :: new ( ) ;
50- m. push ( ( v1 ) . clone ( ) ) ;
50+ m. push ( std :: mem :: take ( & mut v1 ) ) ;
5151 let mut v2: Vec < i32 > = Vec :: new ( ) ;
52- m. push ( ( v2 ) . clone ( ) ) ;
52+ m. push ( std :: mem :: take ( & mut v2 ) ) ;
5353 let mut v3: Vec < i32 > = Vec :: new ( ) ;
54- m. push ( ( v3 ) . clone ( ) ) ;
54+ m. push ( std :: mem :: take ( & mut v3 ) ) ;
5555 ' loop_: for row in 0 ..( m. len ( ) ) {
5656 let mut row = m. as_mut_ptr ( ) . add ( row) ;
5757 ' loop_: for col in 0 ..( ( * row) . len ( ) ) {
You can’t perform that action at this time.
0 commit comments