mirror of
https://github.com/vlang/v.git
synced 2025-09-15 07:22:27 +03:00
cgen: fix assert [1, 2, 3]!.reverse() == [3, 2, 1]!
(#22745)
This commit is contained in:
parent
6c94c24ea8
commit
f00d93477c
2 changed files with 15 additions and 1 deletions
|
@ -27,11 +27,13 @@ fn test_fixed_array_reverse() {
|
|||
b := a.reverse()
|
||||
assert a == ['hi', '1', '5', '3']!
|
||||
assert b == ['3', '5', '1', 'hi']!
|
||||
assert ['hi', '1', '5', '3']!.reverse() == ['3', '5', '1', 'hi']!
|
||||
|
||||
mut nums := [67, -3, 108, 42, 7]!
|
||||
n := nums.reverse()
|
||||
assert nums == [67, -3, 108, 42, 7]!
|
||||
assert n == [7, 42, 108, -3, 67]!
|
||||
assert [67, -3, 108, 42, 7]!.reverse() == [7, 42, 108, -3, 67]!
|
||||
|
||||
mut users := [User{22, 'Peter'}, User{20, 'Bob'}, User{25, 'Alice'}]!
|
||||
u := users.reverse()
|
||||
|
@ -49,4 +51,12 @@ fn test_fixed_array_reverse() {
|
|||
assert u[0].name == 'Alice'
|
||||
assert u[1].name == 'Bob'
|
||||
assert u[2].name == 'Peter'
|
||||
|
||||
u2 := [User{22, 'Peter'}, User{20, 'Bob'}, User{25, 'Alice'}]!.reverse()
|
||||
assert u2[0].age == 25
|
||||
assert u2[1].age == 20
|
||||
assert u2[2].age == 22
|
||||
assert u2[0].name == 'Alice'
|
||||
assert u2[1].name == 'Bob'
|
||||
assert u2[2].name == 'Peter'
|
||||
}
|
||||
|
|
|
@ -833,7 +833,11 @@ fn (mut g Gen) gen_fixed_array_reverse(node ast.CallExpr) {
|
|||
atype := g.styp(node.return_type)
|
||||
g.writeln('${atype} ${past.tmp_var};')
|
||||
g.write('memcpy(&${past.tmp_var}, &')
|
||||
if node.left is ast.ArrayInit {
|
||||
g.fixed_array_init_with_cast(node.left, node.left_type)
|
||||
} else {
|
||||
g.expr(node.left)
|
||||
}
|
||||
g.writeln(', sizeof(${atype}));')
|
||||
|
||||
unsafe {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue