fix a bug

This commit is contained in:
blueloveTH 2024-02-07 17:32:34 +08:00
parent ac32dfdb2d
commit 4f316d1938

View File

@ -10,7 +10,7 @@ namespace pkpy{
CodeObject_ Compiler::push_global_context(){ CodeObject_ Compiler::push_global_context(){
CodeObject_ co = std::make_shared<CodeObject>(lexer->src, lexer->src->filename); CodeObject_ co = std::make_shared<CodeObject>(lexer->src, lexer->src->filename);
co->start_line = prev().line; co->start_line = i==0 ? 1 : prev().line;
contexts.push(CodeEmitContext(vm, co, contexts.size())); contexts.push(CodeEmitContext(vm, co, contexts.size()));
return co; return co;
} }
@ -18,7 +18,7 @@ namespace pkpy{
FuncDecl_ Compiler::push_f_context(Str name){ FuncDecl_ Compiler::push_f_context(Str name){
FuncDecl_ decl = std::make_shared<FuncDecl>(); FuncDecl_ decl = std::make_shared<FuncDecl>();
decl->code = std::make_shared<CodeObject>(lexer->src, name); decl->code = std::make_shared<CodeObject>(lexer->src, name);
decl->code->start_line = prev().line; decl->code->start_line = i==0 ? 1 : prev().line;
decl->nested = name_scope() == NAME_LOCAL; decl->nested = name_scope() == NAME_LOCAL;
contexts.push(CodeEmitContext(vm, decl->code, contexts.size())); contexts.push(CodeEmitContext(vm, decl->code, contexts.size()));
contexts.top().func = decl; contexts.top().func = decl;