Revert "Revert "parser: fix programs without fn main""

This reverts commit 61af044316.
pull/2369/head
Alexander Medvednikov 2019-10-13 17:57:18 +03:00
parent 9b38f59184
commit 526f1a3172
1 changed files with 4 additions and 7 deletions

View File

@ -395,21 +395,18 @@ fn (p mut Parser) parse(pass Pass) {
if p.pref.is_script && !p.pref.is_test { if p.pref.is_script && !p.pref.is_test {
// cur_fn is empty since there was no fn main declared // cur_fn is empty since there was no fn main declared
// we need to set it to save and find variables // 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 == '' { if p.cur_fn.name == '' {
p.set_current_fn( MainFn ) p.set_current_fn( MainFn )
if p.pref.is_repl { if p.pref.is_repl {
if p.first_pass() {
return
}
p.clear_vars() p.clear_vars()
} }
} }
mut start := p.cgen.lines.len mut start := p.cgen.lines.len
p.statement(true) 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-- start--
} }
p.genln('') p.genln('')