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 {
// 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('')