Skip to content

Commit 4bed125

Browse files
committed
fix tests
1 parent 2aaaff4 commit 4bed125

14 files changed

Lines changed: 301 additions & 108 deletions

‎tests/ub/out/refcount/dangling-prvalue-as-lvalue.rs‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ pub fn main() {
1515
}
1616
fn main_0() -> i32 {
1717
let v: Value<Vec<i32>> = Rc::new(RefCell::new(Vec::from([1, 2])));
18-
let b: Ptr<i32> =
19-
({ foo_0(RandomAccessIterator::Vec((v.as_pointer() as Ptr<i32>)).iter_deref()) });
18+
let b: Ptr<i32> = ({ foo_0((v.as_pointer() as Ptr<i32>).begin().iter_deref()) });
2019
(*v.borrow_mut()).clear();
2120
return (b.read());
2221
}

‎tests/ub/out/unsafe/dangling-prvalue-as-lvalue.rs‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ pub fn main() {
1717
}
1818
unsafe fn main_0() -> i32 {
1919
let mut v: Vec<i32> = Vec::from([1, 2]);
20-
let b: *const i32 =
21-
(unsafe { foo_0(&(*UnsafeRandomAccessIterator::Vec(v.as_mut_ptr()).iter_deref())) });
20+
let b: *const i32 = (unsafe { foo_0(&(*v.begin().iter_deref())) });
2221
v.clear();
2322
return (*b);
2423
}

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,22 @@ fn main_0() -> i32 {
1717
__bytes
1818
}));
1919
'loop_: for c in IterRange::new(
20-
(x.as_pointer() as Ptr<i8>),
21-
(x.as_pointer() as Ptr<i8>).to_last(),
20+
RandomAccessIterator::Vec((x.as_pointer() as Ptr<i8>)),
21+
RandomAccessIterator::Vec((x.as_pointer() as Ptr<i8>).to_last()),
2222
) {
2323
let c: Ptr<i8> = c.iter_deref();
2424
c.with_mut(|__v| __v.prefix_inc());
2525
}
2626
'loop_: for c in IterRange::new(
27-
(x.as_pointer() as Ptr<i8>),
28-
(x.as_pointer() as Ptr<i8>).to_last(),
27+
RandomAccessIterator::Vec((x.as_pointer() as Ptr<i8>)),
28+
RandomAccessIterator::Vec((x.as_pointer() as Ptr<i8>).to_last()),
2929
) {
3030
let c: Ptr<i8> = c.iter_deref();
3131
println!("{}", ((c.read()) as i32) as u8 as char);
3232
}
3333
'loop_: for c in IterRange::new(
34-
(x.as_pointer() as Ptr<i8>),
35-
(x.as_pointer() as Ptr<i8>).to_last(),
34+
RandomAccessIterator::Vec((x.as_pointer() as Ptr<i8>)),
35+
RandomAccessIterator::Vec((x.as_pointer() as Ptr<i8>).to_last()),
3636
) {
3737
let mut c: i8 = (c.iter_deref().read());
3838
println!("{}", (c as i32) as u8 as char);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub fn main() {
1111
std::process::exit(main_0());
1212
}
1313
fn main_0() -> i32 {
14-
let v: Value<Vec<i32>> = Rc::new(RefCell::new(vec![1, 2]));
14+
let v: Value<Vec<i32>> = Rc::new(RefCell::new(Vec::from([1, 2])));
1515
let p: Value<RandomAccessIterator<i32>> =
1616
Rc::new(RefCell::new((v.as_pointer() as Ptr<i32>).begin()));
1717
let r: Ptr<i32> = (v.as_pointer() as Ptr<i32>).offset(1_usize);

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,9 @@ pub fn lehmer_2(mut sigma: Ptr<u32>, mut len: u32, mut code: Ptr<u32>) {
6363
((*it.borrow()).iter_distance(&(items.as_pointer() as Ptr<u32>).begin()) as u32);
6464
elem!(code, i).write(__rhs);
6565
{
66-
let idx = <RandomAccessIterator<u32>>::from((*it.borrow()).clone())
67-
.vec_ptr()
68-
.get_offset();
69-
(items.as_pointer() as Ptr<Vec<u32>>).with_mut(|__v: &mut Vec<u32>| __v.remove(idx));
70-
RandomAccessIterator::Vec((items.as_pointer() as Ptr<Vec<u32>>).decay())
66+
let __off = <RandomAccessIterator<u32>>::from((*it.borrow()).clone()).index();
67+
(items.as_pointer() as Ptr<Vec<u32>>).with_mut(|__v: &mut Vec<u32>| __v.remove(__off));
68+
RandomAccessIterator::Vec((items.as_pointer() as Ptr<Vec<u32>>).decay() + __off)
7169
};
7270
i.prefix_inc();
7371
}

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

Lines changed: 91 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,17 @@ fn main_0() -> i32 {
5555
};
5656
assert!(((*v2.borrow()).len() == 3_usize));
5757
{
58-
let idx = <RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin())
59-
.vec_ptr()
60-
.get_offset();
61-
(v2.as_pointer() as Ptr<Vec<i32>>).with_mut(|__v: &mut Vec<i32>| __v.remove(idx));
62-
RandomAccessIterator::Vec((v2.as_pointer() as Ptr<Vec<i32>>).decay())
58+
let __off =
59+
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin()).index();
60+
(v2.as_pointer() as Ptr<Vec<i32>>).with_mut(|__v: &mut Vec<i32>| __v.remove(__off));
61+
RandomAccessIterator::Vec((v2.as_pointer() as Ptr<Vec<i32>>).decay() + __off)
6362
};
6463
assert!(((*v2.borrow()).len() == 2_usize));
6564
assert!(({ (*v2.borrow())[0_usize] } == 2));
6665
assert!(({ (*v2.borrow())[1_usize] } == 3));
6766
{
68-
let __off = <RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin())
69-
.vec_ptr()
70-
.get_offset();
67+
let __off =
68+
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin()).index();
7169
(*v2.borrow_mut()).insert(__off, 100);
7270
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin())
7371
};
@@ -76,6 +74,91 @@ fn main_0() -> i32 {
7674
assert!(({ (*v2.borrow())[0_usize] } == 100));
7775
assert!(({ (*v2.borrow())[1_usize] } == 2));
7876
assert!(({ (*v2.borrow())[2_usize] } == 3));
77+
let mut x: i32 = 7;
78+
{
79+
let __off = <RandomAccessIterator<i32>>::from(
80+
(v2.as_pointer() as Ptr<i32>).begin().iter_add(1_isize),
81+
)
82+
.index();
83+
(*v2.borrow_mut()).insert(__off, x);
84+
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin().iter_add(1_isize))
85+
};
86+
assert!(((*v2.borrow()).len() == 4_usize));
87+
assert!(({ (*v2.borrow())[0_usize] } == 100));
88+
assert!(({ (*v2.borrow())[1_usize] } == 7));
89+
assert!(({ (*v2.borrow())[2_usize] } == 2));
90+
{
91+
let __off = <RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).end()).index();
92+
(*v2.borrow_mut()).splice(__off..__off, std::iter::repeat_n(9, 2_usize));
93+
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).end())
94+
};
95+
assert!(((*v2.borrow()).len() == 6_usize));
96+
assert!(({ (*v2.borrow())[4_usize] } == 9));
97+
assert!(({ (*v2.borrow())[5_usize] } == 9));
98+
{
99+
let __off = <RandomAccessIterator<i32>>::from(
100+
(v2.as_pointer() as Ptr<i32>).begin().iter_add(2_isize),
101+
)
102+
.index();
103+
(*v2.borrow_mut()).splice(__off..__off, Vec::from([11, 12, 13]));
104+
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin().iter_add(2_isize))
105+
};
106+
assert!(((*v2.borrow()).len() == 9_usize));
107+
assert!(({ (*v2.borrow())[1_usize] } == 7));
108+
assert!(({ (*v2.borrow())[2_usize] } == 11));
109+
assert!(({ (*v2.borrow())[3_usize] } == 12));
110+
assert!(({ (*v2.borrow())[4_usize] } == 13));
111+
assert!(({ (*v2.borrow())[5_usize] } == 2));
112+
assert!(({ (*v2.borrow())[8_usize] } == 9));
113+
let src: Value<Vec<i32>> = Rc::new(RefCell::new(Vec::from([21, 22])));
114+
{
115+
let start_idx =
116+
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin()).index();
117+
let mut temp_vec: Vec<i32> = Vec::new();
118+
let mut __it = (src.as_pointer() as Ptr<i32>).begin();
119+
while __it != (src.as_pointer() as Ptr<i32>).end() {
120+
temp_vec.push(__it.iter_deref().read());
121+
__it.iter_inc();
122+
}
123+
(v2.as_pointer() as Ptr<Vec<i32>>).with_mut(|v: &mut Vec<i32>| {
124+
v.splice(start_idx..start_idx, temp_vec);
125+
});
126+
RandomAccessIterator::Vec((v2.as_pointer() as Ptr<Vec<i32>>).decay() + start_idx)
127+
};
128+
assert!(((*v2.borrow()).len() == 11_usize));
129+
assert!(({ (*v2.borrow())[0_usize] } == 21));
130+
assert!(({ (*v2.borrow())[1_usize] } == 22));
131+
assert!(({ (*v2.borrow())[2_usize] } == 100));
132+
{
133+
let __off =
134+
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin()).index();
135+
(v2.as_pointer() as Ptr<Vec<i32>>).with_mut(|__v: &mut Vec<i32>| __v.remove(__off));
136+
RandomAccessIterator::Vec((v2.as_pointer() as Ptr<Vec<i32>>).decay() + __off)
137+
};
138+
{
139+
let __off =
140+
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin()).index();
141+
(v2.as_pointer() as Ptr<Vec<i32>>).with_mut(|__v: &mut Vec<i32>| __v.remove(__off));
142+
RandomAccessIterator::Vec((v2.as_pointer() as Ptr<Vec<i32>>).decay() + __off)
143+
};
144+
let mut i: i32 = 0;
145+
'loop_: while (i < 4) {
146+
{
147+
let __off = <RandomAccessIterator<i32>>::from(
148+
(v2.as_pointer() as Ptr<i32>).begin().iter_add(1_isize),
149+
)
150+
.index();
151+
(v2.as_pointer() as Ptr<Vec<i32>>).with_mut(|__v: &mut Vec<i32>| __v.remove(__off));
152+
RandomAccessIterator::Vec((v2.as_pointer() as Ptr<Vec<i32>>).decay() + __off)
153+
};
154+
i.prefix_inc();
155+
}
156+
(*v2.borrow_mut()).pop();
157+
(*v2.borrow_mut()).pop();
158+
assert!(((*v2.borrow()).len() == 3_usize));
159+
assert!(({ (*v2.borrow())[0_usize] } == 100));
160+
assert!(({ (*v2.borrow())[1_usize] } == 2));
161+
assert!(({ (*v2.borrow())[2_usize] } == 3));
79162
let mut s2: usize = (*v2.borrow()).len();
80163
let v3: Value<Vec<i32>> = Rc::new(RefCell::new(vec![1; 100_usize as usize]));
81164
assert!(((*v3.borrow()).len() == 100_usize));

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,8 @@ fn main_0() -> i32 {
140140
);
141141
{
142142
let start_idx = <RandomAccessIterator<(Value<i32>, Value<i32>)>>::from(
143-
RandomAccessIterator::Vec((v6.as_pointer() as Ptr<(Value<i32>, Value<i32>)>))
143+
(v6.as_pointer() as Ptr<(Value<i32>, Value<i32>)>)
144+
.begin()
144145
.iter_add(1_isize),
145146
)
146147
.index();

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

Lines changed: 41 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -100,19 +100,17 @@ fn main_0() -> i32 {
100100
};
101101
assert!(((*v2.borrow()).len() == 3_usize));
102102
{
103-
let idx = <RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin())
104-
.vec_ptr()
105-
.get_offset();
106-
(v2.as_pointer() as Ptr<Vec<i32>>).with_mut(|__v: &mut Vec<i32>| __v.remove(idx));
107-
RandomAccessIterator::Vec((v2.as_pointer() as Ptr<Vec<i32>>).decay())
103+
let __off =
104+
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin()).index();
105+
(v2.as_pointer() as Ptr<Vec<i32>>).with_mut(|__v: &mut Vec<i32>| __v.remove(__off));
106+
RandomAccessIterator::Vec((v2.as_pointer() as Ptr<Vec<i32>>).decay() + __off)
108107
};
109108
assert!(((*v2.borrow()).len() == 2_usize));
110109
assert!(({ (*v2.borrow())[0_usize] } == 2));
111110
assert!(({ (*v2.borrow())[1_usize] } == 3));
112111
{
113-
let __off = <RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin())
114-
.vec_ptr()
115-
.get_offset();
112+
let __off =
113+
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin()).index();
116114
(*v2.borrow_mut()).insert(__off, 100);
117115
<RandomAccessIterator<i32>>::from((v2.as_pointer() as Ptr<i32>).begin())
118116
};
@@ -245,43 +243,47 @@ fn main_0() -> i32 {
245243
({ fn_1(v7.as_pointer(), v8.clone()) });
246244
let src: Value<Box<[u32]>> = Rc::new(RefCell::new(Box::new([1_u32, 2_u32, 3_u32])));
247245
let mut v9: Vec<u32> = {
248-
let __count = (src.as_pointer() as Ptr<u32>)
249-
.offset((3) as isize)
250-
.get_offset()
251-
- (src.as_pointer() as Ptr<u32>).get_offset();
252-
PtrValueIter::new(&(src.as_pointer() as Ptr<u32>), __count)
253-
.map(|item| u32::try_from(item).ok().unwrap())
254-
.collect::<Vec<_>>()
246+
let mut __v = Vec::new();
247+
let mut __it = (src.as_pointer() as Ptr<u32>);
248+
while __it != (src.as_pointer() as Ptr<u32>).offset((3) as isize) {
249+
__v.push(<u32>::try_from(__it.iter_deref().read()).ok().unwrap());
250+
__it.iter_inc();
251+
}
252+
__v
255253
};
256254
assert!((v9.len() == 3_usize));
257255
assert!(((v9[0_usize] == 1_u32) && (v9[1_usize] == 2_u32)) && (v9[2_usize] == 3_u32));
258256
let mut v10: Vec<u64> = {
259-
let __count = (src.as_pointer() as Ptr<u32>)
260-
.offset((3) as isize)
261-
.get_offset()
262-
- (src.as_pointer() as Ptr<u32>).get_offset();
263-
PtrValueIter::new(&(src.as_pointer() as Ptr<u32>), __count)
264-
.map(|item| u64::try_from(item).ok().unwrap())
265-
.collect::<Vec<_>>()
257+
let mut __v = Vec::new();
258+
let mut __it = (src.as_pointer() as Ptr<u32>);
259+
while __it != (src.as_pointer() as Ptr<u32>).offset((3) as isize) {
260+
__v.push(<u64>::try_from(__it.iter_deref().read()).ok().unwrap());
261+
__it.iter_inc();
262+
}
263+
__v
266264
};
267265
assert!((v10.len() == 3_usize));
268266
assert!(((v10[0_usize] == 1_u64) && (v10[1_usize] == 2_u64)) && (v10[2_usize] == 3_u64));
269267
let mut v11: Vec<i32> = {
270-
let __count = (src.as_pointer() as Ptr<u32>)
271-
.offset((3) as isize)
272-
.get_offset()
273-
- (src.as_pointer() as Ptr<u32>).get_offset();
274-
PtrValueIter::new(&(src.as_pointer() as Ptr<u32>), __count)
275-
.map(|item| i32::try_from(item).ok().unwrap())
276-
.collect::<Vec<_>>()
268+
let mut __v = Vec::new();
269+
let mut __it = (src.as_pointer() as Ptr<u32>);
270+
while __it != (src.as_pointer() as Ptr<u32>).offset((3) as isize) {
271+
__v.push(<i32>::try_from(__it.iter_deref().read()).ok().unwrap());
272+
__it.iter_inc();
273+
}
274+
__v
277275
};
278276
assert!((v11.len() == 3_usize));
279277
assert!(((v11[0_usize] == 1) && (v11[1_usize] == 2)) && (v11[2_usize] == 3));
280278
let src1: Value<Box<[u32]>> = Rc::new(RefCell::new(Box::new([1_u32, 2_u32, 3_u32])));
281279
let mut v12: Vec<u32> = {
282-
let __count = (src1.as_pointer() as Ptr<u32>).to_end().get_offset()
283-
- (src1.as_pointer() as Ptr<u32>).get_offset();
284-
PtrValueIter::new(&(src1.as_pointer() as Ptr<u32>), __count).collect::<Vec<_>>()
280+
let mut __v = Vec::new();
281+
let mut __it = (src1.as_pointer() as Ptr<u32>);
282+
while __it != (src1.as_pointer() as Ptr<u32>).to_end() {
283+
__v.push(<u32>::try_from(__it.iter_deref().read()).ok().unwrap());
284+
__it.iter_inc();
285+
}
286+
__v
285287
};
286288
assert!((v12.len() == 3_usize));
287289
assert!(((v12[0_usize] == 1_u32) && (v12[1_usize] == 2_u32)) && (v12[2_usize] == 3_u32));
@@ -290,8 +292,13 @@ fn main_0() -> i32 {
290292
let mut start: Ptr<u8> = (buf.as_pointer() as Ptr<u8>);
291293
let mut len: usize = 5_usize;
292294
let mut v13: Vec<u8> = {
293-
let __count = start.offset((len) as isize).get_offset() - start.get_offset();
294-
PtrValueIter::new(&start, __count).collect::<Vec<_>>()
295+
let mut __v = Vec::new();
296+
let mut __it = (start).clone();
297+
while __it != start.offset((len) as isize) {
298+
__v.push(<u8>::try_from(__it.iter_deref().read()).ok().unwrap());
299+
__it.iter_inc();
300+
}
301+
__v
295302
};
296303
assert!((v13.len() == 5_usize));
297304
assert!(((v13[0_usize] as i32) == 10) && ((v13[4_usize] as i32) == 50));

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

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,24 @@ unsafe fn main_0() -> i32 {
1717
let s = c"hello".as_ptr();
1818
std::slice::from_raw_parts(s, (0..).take_while(|&i| *s.add(i) != 0).count() + 1).to_vec()
1919
};
20-
'loop_: for c in IterRange::new(x.as_mut_ptr(), x.as_mut_ptr().add(x.len() - 1)) {
20+
'loop_: for c in IterRange::new(
21+
UnsafeRandomAccessIterator::Vec(x.as_mut_ptr()),
22+
UnsafeRandomAccessIterator::Vec(x.as_mut_ptr().add(x.len() - 1)),
23+
) {
2124
let c: *mut libc::c_char = &mut (*c.iter_deref());
2225
(*c).prefix_inc();
2326
}
24-
'loop_: for c in IterRange::new(x.as_mut_ptr(), x.as_mut_ptr().add(x.len() - 1)) {
27+
'loop_: for c in IterRange::new(
28+
UnsafeRandomAccessIterator::Vec(x.as_mut_ptr()),
29+
UnsafeRandomAccessIterator::Vec(x.as_mut_ptr().add(x.len() - 1)),
30+
) {
2531
let c: *mut libc::c_char = &mut (*c.iter_deref());
2632
(unsafe { libc::printf(c"%c\n".as_ptr() as *const libc::c_char, ((*c) as i32)) });
2733
}
28-
'loop_: for c in IterRange::new(x.as_mut_ptr(), x.as_mut_ptr().add(x.len() - 1)) {
34+
'loop_: for c in IterRange::new(
35+
UnsafeRandomAccessIterator::Vec(x.as_mut_ptr()),
36+
UnsafeRandomAccessIterator::Vec(x.as_mut_ptr().add(x.len() - 1)),
37+
) {
2938
let mut c: libc::c_char = (*c.iter_deref());
3039
(unsafe { libc::printf(c"%c\n".as_ptr() as *const libc::c_char, (c as i32)) });
3140
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub fn main() {
1313
}
1414
}
1515
unsafe fn main_0() -> i32 {
16-
let mut v: Vec<i32> = vec![1, 2];
16+
let mut v: Vec<i32> = Vec::from([1, 2]);
1717
let mut p: UnsafeRandomAccessIterator<i32> = v.begin();
1818
let r: *const i32 = &v[(1_usize)];
1919
(*p.iter_deref()) = (*r);

0 commit comments

Comments
 (0)