mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
make function arguments immutable by default
This commit is contained in:
@@ -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)
|
||||
|
Reference in New Issue
Block a user