parent
ac4791045f
commit
1a838b1f43
|
@ -5417,6 +5417,7 @@ pub fn (mut c Checker) map_init(mut node ast.MapInit) table.Type {
|
||||||
}
|
}
|
||||||
val := node.vals[i]
|
val := node.vals[i]
|
||||||
key_type := c.expr(key)
|
key_type := c.expr(key)
|
||||||
|
c.expected_type = val0_type
|
||||||
val_type := c.expr(val)
|
val_type := c.expr(val)
|
||||||
if !c.check_types(key_type, key0_type) {
|
if !c.check_types(key_type, key0_type) {
|
||||||
msg := c.expected_msg(key_type, key0_type)
|
msg := c.expected_msg(key_type, key0_type)
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
fn test_match_in_map_init() {
|
||||||
|
ret := foo()
|
||||||
|
println(ret)
|
||||||
|
assert ret == map{'token': 'a', 'sleep': '30', 'every': '1'}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn foo() map[string]string {
|
||||||
|
mut cfg := map[string][]string{}
|
||||||
|
cfg['token'] = ['a', 'b']
|
||||||
|
cfg['sleep'] = ['30', '60']
|
||||||
|
cfg['every'] = ['1', '5']
|
||||||
|
|
||||||
|
return map{
|
||||||
|
'token': cfg['token'][0]
|
||||||
|
'sleep': match cfg['sleep'][0].len {
|
||||||
|
0 { '60' }
|
||||||
|
else { cfg['sleep'][0] }
|
||||||
|
}
|
||||||
|
'every': match cfg['every'][0].len {
|
||||||
|
0 { '5' }
|
||||||
|
else { cfg['every'][0] }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue