parser: fix programs without fn main

pull/2317/head
Toby Webb 2019-10-13 00:10:45 +02:00 committed by Alexander Medvednikov
parent 1292163637
commit bf21108fdb
1 changed files with 4 additions and 7 deletions

View File

@ -403,21 +403,18 @@ fn (p mut Parser) parse(pass Pass) {
if p.is_script && !p.pref.is_test { if p.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('')