diff --git a/vlib/v/checker/tests/enum_field_name_err.out b/vlib/v/checker/tests/enum_field_name_err.out new file mode 100644 index 0000000000..51649b0b07 --- /dev/null +++ b/vlib/v/checker/tests/enum_field_name_err.out @@ -0,0 +1,6 @@ +vlib/v/checker/tests/enum_field_name_err.v:2:5: error: field name `Green` must be all lowercase + 1 | enum Color { + 2 | Green + | ~~~~~ + 3 | yellow + 4 | } diff --git a/vlib/v/checker/tests/enum_field_name_err.vv b/vlib/v/checker/tests/enum_field_name_err.vv new file mode 100644 index 0000000000..0ce39313d2 --- /dev/null +++ b/vlib/v/checker/tests/enum_field_name_err.vv @@ -0,0 +1,7 @@ +enum Color { + Green + yellow +} +fn main(){ + println('hello') +} diff --git a/vlib/v/checker/tests/enum_name_err.out b/vlib/v/checker/tests/enum_name_err.out new file mode 100644 index 0000000000..efe897bb1e --- /dev/null +++ b/vlib/v/checker/tests/enum_name_err.out @@ -0,0 +1,5 @@ +vlib/v/checker/tests/enum_name_err.v:1:6: error: enum name `color` must begin with a capital letter + 1 | enum color { + | ~~~~~ + 2 | green + 3 | yellow diff --git a/vlib/v/checker/tests/enum_name_err.vv b/vlib/v/checker/tests/enum_name_err.vv new file mode 100644 index 0000000000..9b08203569 --- /dev/null +++ b/vlib/v/checker/tests/enum_name_err.vv @@ -0,0 +1,7 @@ +enum color { + green + yellow +} +fn main(){ + println('hello') +} diff --git a/vlib/v/parser/parser.v b/vlib/v/parser/parser.v index 582e997277..d43d5ceb0f 100644 --- a/vlib/v/parser/parser.v +++ b/vlib/v/parser/parser.v @@ -1146,7 +1146,7 @@ fn (mut p Parser) enum_decl() ast.EnumDecl { end_pos := p.tok.position() enum_name := p.check_name() if enum_name.len > 0 && !enum_name[0].is_capital() { - verror('enum name `$enum_name` must begin with a capital letter') + p.error_with_pos('enum name `$enum_name` must begin with a capital letter', end_pos) } name := p.prepend_mod(enum_name) p.check(.lcbr) @@ -1156,6 +1156,9 @@ fn (mut p Parser) enum_decl() ast.EnumDecl { for p.tok.kind != .eof && p.tok.kind != .rcbr { pos := p.tok.position() val := p.check_name() + if !val.is_lower() { + p.error_with_pos('field name `$val` must be all lowercase', pos) + } vals << val mut expr := ast.Expr{} mut has_expr := false