Skip to content

Commit b06e806

Browse files
committed
Update tests
1 parent 7d2d04f commit b06e806

3 files changed

Lines changed: 24 additions & 21 deletions

File tree

‎tests/unit/out/refcount/copy_ctor.rs‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,13 +141,20 @@ impl Clone for Box_int_ {
141141
Box_int_::copy_from(__src.as_pointer())
142142
}
143143
}
144-
#[derive(Clone, Record, ByteRepr, VaArg, FnPtrArg, Default)]
144+
#[derive(Clone, Record, ByteRepr, VaArg, FnPtrArg, MoveCtor, Default)]
145145
#[byte_size(4)]
146146
pub struct Owner {
147147
#[offset(0)]
148148
#[byte_size(4)]
149149
pub box_: Box_int_,
150150
}
151+
impl Owner {
152+
pub fn move_from(_a0: Ptr<Owner>) -> Self {
153+
Self {
154+
box_: Box_int_::move_from({ field_ptr!(_a0, box_) }),
155+
}
156+
}
157+
}
151158
#[derive(Record, ByteRepr, VaArg, FnPtrArg, Default)]
152159
#[byte_size(4)]
153160
pub struct OutOfLine {
@@ -255,7 +262,7 @@ fn main_0() -> i32 {
255262
let o: Value<Owner> = Rc::new(RefCell::new(Owner {
256263
box_: Box_int_::new({ 3 }),
257264
}));
258-
let mut o2: Owner = (*o.borrow()).clone();
265+
let mut o2: Owner = Owner::move_from({ o.as_pointer() });
259266
assert!((o2.box_.val == 3));
260267
let ol1: Value<OutOfLine> = Rc::new(RefCell::new(OutOfLine::new({ 5 })));
261268
let mut ol2: OutOfLine = OutOfLine::copy_from({ ol1.as_pointer() });

‎tests/unit/out/refcount/structured_binding_move_ctor.rs‎

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ impl Clone for Movable {
5252
Movable::copy_from(__src.as_pointer())
5353
}
5454
}
55-
#[derive(DeepClone, Record, ByteRepr, VaArg, FnPtrArg, Default)]
55+
#[derive(Clone, Record, ByteRepr, VaArg, FnPtrArg, Default)]
5656
#[byte_size(48)]
5757
pub struct Holder {
5858
#[offset(0)]
5959
#[byte_size(24)]
60-
pub xs: Value<Vec<i32>>,
60+
pub xs: Vec<i32>,
6161
#[offset(24)]
6262
#[byte_size(24)]
63-
pub ys: Value<Vec<i32>>,
63+
pub ys: Vec<i32>,
6464
}
6565
pub fn main() {
6666
__cpp2rust_init_globals();
@@ -76,31 +76,31 @@ fn main_0() -> i32 {
7676
assert!(({ (*m.borrow()).x } == 0));
7777
assert!(({ (*m.borrow()).y } == 0));
7878
let h: Value<Holder> = Rc::new(RefCell::new(Holder {
79-
xs: Rc::new(RefCell::new(vec![1, 2, 3])),
80-
ys: Rc::new(RefCell::new(vec![4, 5])),
79+
xs: Vec::from([1, 2, 3]),
80+
ys: Vec::from([4, 5]),
8181
}));
8282
let __decomp_3: Value<Holder> =
8383
Rc::new(RefCell::new(({ HolderImpl::extract(&h.as_pointer()) })));
84-
assert!(((*{ (*__decomp_3.borrow()).xs.clone() }.borrow()).len() == 3_usize));
85-
assert!(((*{ (*__decomp_3.borrow()).ys.clone() }.borrow()).len() == 2_usize));
84+
assert!(((*__decomp_3.borrow()).xs.len() == 3_usize));
85+
assert!(((*__decomp_3.borrow()).ys.len() == 2_usize));
8686
assert!(
8787
((elem!(
88-
({ (*__decomp_3.borrow()).xs.as_pointer() } as Ptr<i32>),
88+
(field_ref!(__decomp_3.as_pointer(), xs).as_pointer() as Ptr<i32>),
8989
2_usize
9090
)
9191
.read())
9292
== 3)
9393
);
9494
assert!(
9595
((elem!(
96-
({ (*__decomp_3.borrow()).ys.as_pointer() } as Ptr<i32>),
96+
(field_ref!(__decomp_3.as_pointer(), ys).as_pointer() as Ptr<i32>),
9797
0_usize
9898
)
9999
.read())
100100
== 4)
101101
);
102-
assert!((*{ (*h.borrow()).xs.clone() }.borrow()).is_empty());
103-
assert!((*{ (*h.borrow()).ys.clone() }.borrow()).is_empty());
102+
assert!((*h.borrow()).xs.is_empty());
103+
assert!((*h.borrow()).ys.is_empty());
104104
return 0;
105105
}
106106
pub trait HolderImpl {
@@ -109,12 +109,8 @@ pub trait HolderImpl {
109109
impl HolderImpl for Ptr<Holder> {
110110
fn extract(&self) -> Holder {
111111
return Holder {
112-
xs: Rc::new(RefCell::new(std::mem::take(
113-
&mut (*(*self).with(|__s| __s.xs.clone()).borrow_mut()),
114-
))),
115-
ys: Rc::new(RefCell::new(std::mem::take(
116-
&mut (*(*self).with(|__s| __s.ys.clone()).borrow_mut()),
117-
))),
112+
xs: field!((*self), xs).with_mut(std::mem::take),
113+
ys: field!((*self), ys).with_mut(std::mem::take),
118114
};
119115
}
120116
}

‎tests/unit/out/unsafe/structured_binding_move_ctor.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ unsafe fn main_0() -> i32 {
7373
assert!(((m.x) == (0)));
7474
assert!(((m.y) == (0)));
7575
let mut h: Holder = Holder {
76-
xs: vec![1, 2, 3],
77-
ys: vec![4, 5],
76+
xs: Vec::from([1, 2, 3]),
77+
ys: Vec::from([4, 5]),
7878
};
7979
let mut __decomp_3: Holder = (unsafe { Holder::extract(&mut h) });
8080
assert!(((__decomp_3.xs.len()) == (3_usize)));

0 commit comments

Comments
 (0)