1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

checker: support integer and voidptr key types for maps (#7503)

This commit is contained in:
Nick Treleaven
2020-12-27 13:18:46 +00:00
committed by GitHub
parent 929a002229
commit e813583bc1
9 changed files with 268 additions and 51 deletions

View File

@@ -463,3 +463,35 @@ fn test_map_or() {
_ = m
// num := m['first'] or { return }
}
fn test_int_keys() {
mut m := map[int]int
m[3] = 9
m[4] = 16
assert m.len == 2
assert m[3] == 9
assert m[4] == 16
m[5] += 24
m[5]++
assert m[5] == 25
mc := m.clone()
assert mc.len == 3
mut all := []int{}
for k, v in mc {
assert m[k] == v
all << k
all << v
}
assert all == [3,9,4,16,5,25]
}
fn test_voidptr_keys() {
mut m := map[voidptr]string
v := 5
m[&v] = 'var'
m[&m] = 'map'
assert m[&v] == 'var'
assert m[&m] == 'map'
assert m.len == 2
}