compiler: allow mut passed as argument to be modified

This commit is contained in:
Henrixounez 2019-06-28 19:10:32 +02:00 committed by Alexander Medvednikov
parent ffa69921f5
commit 165dfe5fe0
2 changed files with 23 additions and 1 deletions

View file

@ -1193,7 +1193,7 @@ fn (p mut Parser) name_expr() string {
hack_lit := p.lit
// amp
ptr := p.tok == AMP
deref := p.tok == MUL
mut deref := p.tok == MUL
if ptr || deref {
p.next()
}
@ -1237,6 +1237,7 @@ fn (p mut Parser) name_expr() string {
// Variable
v := p.cur_fn.find_var(name)
if v.name.len != 0 {
deref = deref || (v.is_arg && v.is_mut && is_mutable_type(v.typ))
if ptr {
p.gen('& /*vvar*/ ')
}