From bf21108fdb2fa20484108fe561020d73db9e00e4 Mon Sep 17 00:00:00 2001 From: Toby Webb Date: Sun, 13 Oct 2019 00:10:45 +0200 Subject: [PATCH] parser: fix programs without fn main --- compiler/parser.v | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/compiler/parser.v b/compiler/parser.v index aa771169ec..e75ede9e54 100644 --- a/compiler/parser.v +++ b/compiler/parser.v @@ -403,21 +403,18 @@ fn (p mut Parser) parse(pass Pass) { if p.is_script && !p.pref.is_test { // cur_fn is empty since there was no fn main declared // we need to set it to save and find variables - if p.first_pass() { - if p.cur_fn.name == '' { - p.set_current_fn( MainFn ) - } - return - } if p.cur_fn.name == '' { p.set_current_fn( MainFn ) if p.pref.is_repl { + if p.first_pass() { + return + } p.clear_vars() } } mut start := p.cgen.lines.len p.statement(true) - if p.cgen.lines[start - 1] != '' && p.cgen.fn_main != '' { + if start > 0 && p.cgen.lines[start - 1] != '' && p.cgen.fn_main != '' { start-- } p.genln('')