parser: fix fn attributes empty error
parent
0d1e5abc41
commit
90f07eb64a
|
@ -0,0 +1,5 @@
|
||||||
|
vlib/v/checker/tests/fn_attributes_empty_err.v:1:1: error: attributes cannot be empty
|
||||||
|
1 | [] fn tt() {
|
||||||
|
| ~~
|
||||||
|
2 | println('text')
|
||||||
|
3 | }
|
|
@ -0,0 +1,6 @@
|
||||||
|
[] fn tt() {
|
||||||
|
println('text')
|
||||||
|
}
|
||||||
|
fn main() {
|
||||||
|
tt()
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
vlib/v/checker/tests/multiple_fn_attributes.v:2:1: error: multiple attributes detected
|
vlib/v/checker/tests/multiple_fn_attributes.v:1:1: error: multiple attributes detected
|
||||||
1 | [inline;deprecated]
|
1 | [inline;deprecated]
|
||||||
|
| ~~~~~~~~~~~~~~~~~~~
|
||||||
2 | fn foo(name string) string {}
|
2 | fn foo(name string) string {}
|
||||||
| ~~
|
|
|
@ -407,9 +407,14 @@ pub fn (mut p Parser) top_stmt() ast.Stmt {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.lsbr {
|
.lsbr {
|
||||||
|
start_pos := p.tok.position()
|
||||||
attrs := p.attributes()
|
attrs := p.attributes()
|
||||||
if attrs.len > 1 {
|
if attrs.len > 1 {
|
||||||
p.error('multiple attributes detected')
|
end_pos := p.tok.position()
|
||||||
|
p.error_with_pos('multiple attributes detected', start_pos.extend(end_pos))
|
||||||
|
} else if attrs.len == 0 {
|
||||||
|
end_pos := p.tok.position()
|
||||||
|
p.error_with_pos('attributes cannot be empty', start_pos.extend(end_pos))
|
||||||
}
|
}
|
||||||
return attrs[0]
|
return attrs[0]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue