blueloveTH 1 vuosi sitten
vanhempi
commit
6e9e25ca34
2 muutettua tiedostoa jossa 13 lisäystä ja 3 poistoa
  1. 3 3
      src/ceval.cpp
  2. 10 0
      tests/43_eval.py

+ 3 - 3
src/ceval.cpp

@@ -268,7 +268,7 @@ __NEXT_STEP:;
                     PK_DEBUG_ASSERT(func._closure != nullptr);
                     PK_DEBUG_ASSERT(func._closure != nullptr);
                     func._closure->set(_name, _0);
                     func._closure->set(_name, _0);
                 }else{
                 }else{
-                    vm->UnboundLocalError(_name);
+                    vm->NameError(_name);
                 }
                 }
             }
             }
         }else{
         }else{
@@ -323,9 +323,9 @@ __NEXT_STEP:;
                 if(func.decl == __dynamic_func_decl){
                 if(func.decl == __dynamic_func_decl){
                     PK_DEBUG_ASSERT(func._closure != nullptr);
                     PK_DEBUG_ASSERT(func._closure != nullptr);
                     bool ok = func._closure->del(_name);
                     bool ok = func._closure->del(_name);
-                    if(!ok) vm->UnboundLocalError(_name);
+                    if(!ok) vm->NameError(_name);
                 }else{
                 }else{
-                    vm->UnboundLocalError(_name);
+                    vm->NameError(_name);
                 }
                 }
             }
             }
         }else{
         }else{

+ 10 - 0
tests/43_eval.py

@@ -52,3 +52,13 @@ assert globals == {'a': 1}
 
 
 exec('a=2', globals)
 exec('a=2', globals)
 assert globals == {'a': 2}
 assert globals == {'a': 2}
+
+globals = {'a': 2}
+locals = {'b': 3}
+assert eval('a*b', globals, locals) == 6
+
+try:
+    exec('a*b*c', globals, locals)
+    exit(1)
+except NameError:
+    pass