From b21be7f670b384282ce1d121f58aae9b0d2252d6 Mon Sep 17 00:00:00 2001 From: yuyi Date: Sat, 2 May 2020 00:18:58 +0800 Subject: [PATCH] parser: multiple names error --- vlib/v/checker/tests/multi_names_err.out | 5 +++++ vlib/v/checker/tests/multi_names_err.vv | 3 +++ vlib/v/parser/parser.v | 2 ++ 3 files changed, 10 insertions(+) create mode 100644 vlib/v/checker/tests/multi_names_err.out create mode 100644 vlib/v/checker/tests/multi_names_err.vv diff --git a/vlib/v/checker/tests/multi_names_err.out b/vlib/v/checker/tests/multi_names_err.out new file mode 100644 index 0000000000..cb9215fcaa --- /dev/null +++ b/vlib/v/checker/tests/multi_names_err.out @@ -0,0 +1,5 @@ +vlib/v/checker/tests/multi_names_err.v:2:4: error: unexpected name `a` + 1 | fn main() { + 2 | a a a a := 1 + | ^ + 3 | } diff --git a/vlib/v/checker/tests/multi_names_err.vv b/vlib/v/checker/tests/multi_names_err.vv new file mode 100644 index 0000000000..cff14416f7 --- /dev/null +++ b/vlib/v/checker/tests/multi_names_err.vv @@ -0,0 +1,3 @@ +fn main() { + a a a a := 1 +} diff --git a/vlib/v/parser/parser.v b/vlib/v/parser/parser.v index 575cd3c3aa..69ed2457bb 100644 --- a/vlib/v/parser/parser.v +++ b/vlib/v/parser/parser.v @@ -472,6 +472,8 @@ pub fn (mut p Parser) stmt() ast.Stmt { return ast.GotoLabel{ name: name } + } else if p.tok.kind == .name && p.peek_tok.kind == .name { + p.error_with_pos('unexpected name `$p.peek_tok.lit`', p.peek_tok.position()) } epos := p.tok.position() expr := p.expr(0)