mirror of
https://github.com/vlang/v.git
synced 2025-09-15 07:22:27 +03:00
make function arguments immutable by default
This commit is contained in:
parent
06b8bd9382
commit
34e0b164eb
22 changed files with 107 additions and 83 deletions
|
@ -1192,7 +1192,8 @@ fn (p mut Parser) statement(add_semi bool) string {
|
|||
fn (p mut Parser) assign_statement(v Var, ph int, is_map bool) {
|
||||
p.log('assign_statement() name=$v.name tok=')
|
||||
tok := p.tok
|
||||
if !v.is_mut && !v.is_arg && !p.pref.translated && !v.is_global{
|
||||
//if !v.is_mut && !v.is_arg && !p.pref.translated && !v.is_global{
|
||||
if !v.is_mut && !p.pref.translated && !v.is_global{
|
||||
p.error('`$v.name` is immutable')
|
||||
}
|
||||
if !v.is_changed {
|
||||
|
@ -1799,7 +1800,8 @@ fn (p mut Parser) dot(str_typ string, method_ph int) string {
|
|||
return method.typ
|
||||
}
|
||||
|
||||
fn (p mut Parser) index_expr(typ string, fn_ph int) string {
|
||||
fn (p mut Parser) index_expr(typ_ string, fn_ph int) string {
|
||||
mut typ := typ_
|
||||
// a[0]
|
||||
v := p.expr_var
|
||||
//if p.fileis('fn_test.v') {
|
||||
|
@ -2361,8 +2363,8 @@ fn (p mut Parser) char_expr() {
|
|||
}
|
||||
|
||||
|
||||
fn format_str(str string) string {
|
||||
str = str.replace('"', '\\"')
|
||||
fn format_str(_str string) string {
|
||||
mut str := _str.replace('"', '\\"')
|
||||
$if windows {
|
||||
str = str.replace('\r\n', '\\n')
|
||||
}
|
||||
|
@ -3298,9 +3300,11 @@ fn (p mut Parser) go_statement() {
|
|||
|
||||
fn (p mut Parser) register_var(v Var) {
|
||||
if v.line_nr == 0 {
|
||||
v.line_nr = p.scanner.line_nr
|
||||
}
|
||||
p.cur_fn.register_var(v)
|
||||
//v.line_nr = p.scanner.line_nr
|
||||
p.cur_fn.register_var({ v | line_nr: p.scanner.line_nr })
|
||||
} else {
|
||||
p.cur_fn.register_var(v)
|
||||
}
|
||||
}
|
||||
|
||||
// user:=jsdecode(User, user_json_string)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue