parser: improve the error message for unexpected keywords
parent
444d49da75
commit
a5b10b5539
|
@ -425,7 +425,8 @@ fn (mut p Parser) check(expected token.Kind) {
|
||||||
if expected == .name {
|
if expected == .name {
|
||||||
p.name_error = true
|
p.name_error = true
|
||||||
}
|
}
|
||||||
p.error('unexpected `$p.tok.kind.str()`, expecting `$expected.str()`')
|
label := if token.is_key(p.tok.lit) { 'keyword ' } else { '' }
|
||||||
|
p.error('unexpected $label`$p.tok.kind.str()`, expecting `$expected.str()`')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
vlib/v/parser/tests/unexpected_keyword.vv:5:12: error: unexpected keyword `import`, expecting `(`
|
||||||
|
3 | }
|
||||||
|
4 |
|
||||||
|
5 | fn (s Abc) import(name string) {
|
||||||
|
| ~~~~~~
|
||||||
|
6 | println(name)
|
||||||
|
7 | }
|
|
@ -0,0 +1,12 @@
|
||||||
|
struct Abc {
|
||||||
|
x int
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (s Abc) import(name string) {
|
||||||
|
println(name)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
s := Abc{}
|
||||||
|
s.import('lib')
|
||||||
|
}
|
Loading…
Reference in New Issue