parser: anon fn arg scope fix

pull/4550/head
joe-conigliaro 2020-04-22 21:11:58 +10:00
parent 830b1807c1
commit 80a4fbf0be
No known key found for this signature in database
GPG Key ID: C12F7136C08206F1
1 changed files with 3 additions and 4 deletions

View File

@ -83,15 +83,14 @@ pub fn (mut p Parser) call_args() []ast.CallArg {
}
fn (mut p Parser) fn_decl() ast.FnDecl {
// p.table.clear_vars()
start_pos := p.tok.position()
p.open_scope()
is_deprecated := p.attr == 'deprecated'
is_pub := p.tok.kind == .key_pub
if is_pub {
p.next()
}
p.check(.key_fn)
p.open_scope()
// C. || JS.
is_c := p.tok.kind == .name && p.tok.lit == 'C'
is_js := p.tok.kind == .name && p.tok.lit == 'JS'
@ -237,8 +236,8 @@ fn (mut p Parser) fn_decl() ast.FnDecl {
fn (mut p Parser) anon_fn() ast.AnonFn {
pos := p.tok.position()
// p.open_scope()
p.check(.key_fn)
p.open_scope()
// TODO generics
args, is_variadic := p.fn_args()
for arg in args {
@ -256,7 +255,7 @@ fn (mut p Parser) anon_fn() ast.AnonFn {
if p.tok.kind == .lcbr {
stmts = p.parse_block()
}
// p.close_scope()
p.close_scope()
func := table.Fn{
args: args
is_variadic: is_variadic