v/compiler/tests/mut_test.v

53 lines
674 B
V
Raw Normal View History

struct A {
pub mut:
v []int
}
struct B {
pub mut:
a []A
}
2019-08-10 23:02:48 +02:00
fn foo(b int, a mut []int) {
a[0] = 7
a << 4
}
2019-08-07 14:16:10 +02:00
// TODO
2019-08-05 04:34:12 +02:00
fn test_mut() {
2019-08-10 23:02:48 +02:00
mut numbers := [1,2,3]
2019-08-11 21:45:18 +02:00
foo(7, mut numbers)
2019-08-07 13:50:28 +02:00
//assert a.len == 4
2019-08-10 23:02:48 +02:00
assert numbers[0] == 7
2019-08-07 14:16:10 +02:00
//assert a[3] == 4
n := 1
mut b := &n
2019-08-05 04:34:12 +02:00
*b = 10
//mut b := mut a
//b = 10
}
fn test_mut_2() {
zero := 0
mut b := B{}
b.a << A{}
b.a[0].v = [9, 8, 7]
b.a[0].v << 6
b.a[zero].v << 5
b.a[0].v[zero] = 3
b.a[0].v[b.a[zero].v[zero]] += 1b.a[0].v[b.a[0].v[zero]] += 1
assert b.a[0].v.len == 5
assert b.a[0].v[0] == 3
assert b.a[0].v[1] == 8
assert b.a[0].v[2] == 7
assert b.a[0].v[3] == 8
assert b.a[0].v[4] == 5
2019-08-05 04:34:12 +02:00
}