checker: check enum field name duplicate
parent
50491670af
commit
4d415e56d6
|
@ -974,7 +974,12 @@ pub fn (mut c Checker) return_stmt(return_stmt mut ast.Return) {
|
|||
}
|
||||
|
||||
pub fn (mut c Checker) enum_decl(decl ast.EnumDecl) {
|
||||
for field in decl.fields {
|
||||
for i, field in decl.fields {
|
||||
for j in 0..i {
|
||||
if field.name == decl.fields[j].name {
|
||||
c.error('field name `$field.name` duplicate', field.pos)
|
||||
}
|
||||
}
|
||||
if field.has_expr {
|
||||
match field.expr {
|
||||
ast.IntegerLiteral {}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
vlib/v/checker/tests/enum_field_name_duplicate_err.v:5:2: error: field name `green` duplicate
|
||||
3| yellow
|
||||
4| blue
|
||||
5| green
|
||||
~~~~~
|
||||
6| }
|
||||
7|
|
|
@ -0,0 +1,10 @@
|
|||
enum Color {
|
||||
green
|
||||
yellow
|
||||
blue
|
||||
green
|
||||
}
|
||||
|
||||
fn main(){
|
||||
println('hello')
|
||||
}
|
Loading…
Reference in New Issue