parser: struct names must be capitalized

pull/2159/head
Alexander Medvednikov 2019-09-28 22:20:34 +03:00
parent a4cbe78d97
commit 9eac16b976
2 changed files with 6 additions and 2 deletions

View File

@ -473,7 +473,7 @@ string _STR_TMP(const char *fmt, ...) {
fn (v mut V) gen_main_start(add_os_args bool){ fn (v mut V) gen_main_start(add_os_args bool){
v.cgen.genln('int main(int argc, char** argv) { ') v.cgen.genln('int main(int argc, char** argv) { ')
v.cgen.genln(' init_consts();') v.cgen.genln(' init_consts();')
if add_os_args && 'os' in v.table.imports { if add_os_args && 'os' in v.table.imports {
v.cgen.genln(' os__args = os__init_os_args(argc, (byteptr*)argv);') v.cgen.genln(' os__args = os__init_os_args(argc, (byteptr*)argv);')
} }
@ -678,7 +678,8 @@ fn (v mut V) add_v_files_to_compile() {
continue continue
} }
mod_path := v.find_module_path(mod) mod_path := v.find_module_path(mod)
// If we are in default mode, we don't parse vlib .v files, but header .vh files in // If we are in default mode, we don't parse vlib .v files, but
// header .vh files in
// TmpPath/vlib // TmpPath/vlib
// These were generated by vfmt // These were generated by vfmt
/* /*

View File

@ -606,6 +606,9 @@ fn (p mut Parser) struct_decl() {
if name.contains('_') && !p.pref.translated { if name.contains('_') && !p.pref.translated {
p.error('type names cannot contain `_`') p.error('type names cannot contain `_`')
} }
if !p.builtin_mod && !name[0].is_capital() {
p.error('struct names must be capitalized: `struct Foo {`, not `struct foo {`')
}
if is_interface && !name.ends_with('er') { if is_interface && !name.ends_with('er') {
p.error('interface names temporarily have to end with `er` (e.g. `Speaker`, `Reader`)') p.error('interface names temporarily have to end with `er` (e.g. `Speaker`, `Reader`)')
} }