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

force snake_case in variable names

This commit is contained in:
Alexander Medvednikov
2019-07-15 22:44:26 +02:00
parent 100bcc2034
commit 840e496a51
5 changed files with 33 additions and 30 deletions

View File

@ -41,6 +41,7 @@ fn (f &Fn) find_var(name string) Var {
return Var{}
}
fn (f mut Fn) open_scope() {
f.scope_level++
}
@ -297,20 +298,19 @@ fn (p mut Parser) fn_decl() {
p.cur_fn = f
// Register the method
if receiver_typ != '' {
mut receiver_T := p.table.find_type(receiver_typ)
mut receiver_t := p.table.find_type(receiver_typ)
// No such type yet? It could be defined later. Create a new type.
// struct declaration later will modify it instead of creating a new one.
if p.first_run() && receiver_T.name == '' {
if p.first_run() && receiver_t.name == '' {
// println('fn decl !!!!!!! REG PH $receiver_typ')
ttyp := Type {
p.table.register_type2(Type {
name: receiver_typ.replace('*', '')
mod: p.mod
is_placeholder: true
}
p.table.register_type2(ttyp)
})
}
// f.idx = p.table.fn_cnt
receiver_T.add_method(f)
receiver_t.add_method(f)
}
else {
// println('register_fn typ=$typ isg=$is_generic')
@ -734,7 +734,7 @@ fn (p mut Parser) fn_call_args(f *Fn) *Fn {
if ! (expected == 'void*' && got == 'int') &&
! (expected == 'byte*' && got.contains(']byte')) &&
! (expected == 'byte*' && got == 'string') {
p.cgen.set_placeholder(ph, '& /*11 EXP:"$expected" .key_goT:"$got" */')
p.cgen.set_placeholder(ph, '& /*11 EXP:"$expected" GOT:"$got" */')
}
}
}

View File

@ -1152,6 +1152,9 @@ fn (p mut Parser) var_decl() {
v := p.cur_fn.find_var(name)
p.error('redefinition of `$name`')
}
if name.len > 1 && contains_capital(name) {
p.error('variable names cannot contain uppercase letters, use snake_case instead')
}
p.check_space(.decl_assign) // :=
// Generate expression to tmp because we need its type first
// [TYP .name =] bool_expression()