1
0
blueloveTH 2 жил өмнө
parent
commit
c889a33d51
3 өөрчлөгдсөн 3 нэмэгдсэн , 3 устгасан
  1. 0 1
      src/codeobject.h
  2. 2 2
      src/compiler.h
  3. 1 0
      src/expr.h

+ 0 - 1
src/codeobject.h

@@ -60,7 +60,6 @@ struct CodeObject {
     List consts;
     std::vector<StrName> varnames;      // local variables
     NameDictInt varnames_inv;
-    std::set<Str> global_names;
     std::vector<CodeBlock> blocks = { CodeBlock(NO_BLOCK, -1, 0, 0) };
     NameDictInt labels;
     std::vector<FuncDecl_> func_decls;

+ 2 - 2
src/compiler.h

@@ -422,7 +422,7 @@ class Compiler {
     void exprName(){
         Str name = prev().str();
         NameScope scope = name_scope();
-        if(ctx()->co->global_names.count(name)){
+        if(ctx()->global_names.count(name)){
             scope = NAME_GLOBAL;
         }
         ctx()->s_expr.push(make_expr<NameExpr>(name, scope));
@@ -803,7 +803,7 @@ __SUBSCR_END:
             case TK("global"):
                 do {
                     consume(TK("@id"));
-                    ctx()->co->global_names.insert(prev().str());
+                    ctx()->global_names.insert(prev().str());
                 } while (match(TK(",")));
                 consume_end_stmt();
                 break;

+ 1 - 0
src/expr.h

@@ -38,6 +38,7 @@ struct CodeEmitContext{
     CodeObject_ co;
     stack<Expr_> s_expr;
     int level;
+    std::set<Str> global_names;
     CodeEmitContext(VM* vm, CodeObject_ co, int level): vm(vm), co(co), level(level) {}
 
     int curr_block_i = 0;