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

parser: allow constant usage in assoc

This commit is contained in:
ʇʞʌp
2019-11-25 19:41:56 -08:00
committed by Alexander Medvednikov
parent 5c217b9e61
commit 81d552038c
3 changed files with 43 additions and 7 deletions

View File

@@ -2150,11 +2150,13 @@ fn (p mut Parser) assoc() string {
// println('assoc()')
p.next()
name := p.check_name()
var := p.find_var(name) or {
var := p.find_var_or_const(name) or {
p.error('unknown variable `$name`')
exit(1)
}
p.mark_var_used(var)
if !var.is_const {
p.mark_var_used(var)
}
p.check(.pipe)
p.gen('($var.typ){')
mut fields := []string// track the fields user is setting, the rest will be copied from the old object
@@ -2177,7 +2179,7 @@ fn (p mut Parser) assoc() string {
if f in fields {
continue
}
p.gen('.$f = ${name}.$f,')
p.gen('.$f = ${var.name}.$f,')
}
p.check(.rcbr)
p.gen('}')