From d8caa6431f3fb08cec12690ffce0a9053e309ccc Mon Sep 17 00:00:00 2001 From: Henrixounez Date: Fri, 28 Jun 2019 20:50:29 +0200 Subject: [PATCH] compiler: checks if variables are unused on scripts main function --- compiler/fn.v | 14 ++++++++------ compiler/parser.v | 4 ++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/compiler/fn.v b/compiler/fn.v index 011c09dca0..625b2b7103 100644 --- a/compiler/fn.v +++ b/compiler/fn.v @@ -403,7 +403,14 @@ pthread_create(&_thread_so , NULL, &reload_so, NULL); ') p.fgenln('\n') return } - for var in f.local_vars { + p.check_unused_variables() + p.cur_fn = EmptyFn + p.fgenln('\n') + p.genln('}') +} + +fn (p mut Parser) check_unused_variables() { + for var in p.cur_fn.local_vars { if var.name == '' { break } @@ -419,11 +426,6 @@ pthread_create(&_thread_so , NULL, &reload_so, NULL); ') // p.genln('free(${var.name}.data); // !!!! XAXA') } } - // println('end of func decl') - // p.print_tok() - p.cur_fn = EmptyFn - p.fgenln('\n') - p.genln('}') } // Important function with 5 args. diff --git a/compiler/parser.v b/compiler/parser.v index bfb5102eff..64db40583f 100644 --- a/compiler/parser.v +++ b/compiler/parser.v @@ -230,6 +230,10 @@ fn (p mut Parser) parse() { p.cgen.consts << g case EOF: p.log('end of parse()') + if p.is_script && !p.is_test { + p.cur_fn = MainFn + p.check_unused_variables() + } if true && !p.first_run() && p.fileis('test') { out := os.create('/var/tmp/fmt.v') out.appendln(p.scanner.fmt_out.str())