diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2001-01-19 03:25:05 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2001-01-19 03:25:05 (GMT) |
commit | c862cf400f90e7ef63fa333d1af141934eb92c59 (patch) | |
tree | e82e932ade9c76290b811dde761022daf71e369a /Python/ceval.c | |
parent | b4ed8c4db0701dcce6c83fcdb82da1bdc651bf29 (diff) | |
download | cpython-c862cf400f90e7ef63fa333d1af141934eb92c59.zip cpython-c862cf400f90e7ef63fa333d1af141934eb92c59.tar.gz cpython-c862cf400f90e7ef63fa333d1af141934eb92c59.tar.bz2 |
clearer error messages for apply() and "no locals"
Diffstat (limited to 'Python/ceval.c')
-rw-r--r-- | Python/ceval.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index c01e16d..199272c 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -20,6 +20,8 @@ #include <ctype.h> +#define REPR(O) PyString_AS_STRING(PyObject_Repr(O)) + /* Turn this on if your compiler chokes on the big switch: */ /* #define CASE_TOO_BIG 1 */ @@ -1438,8 +1440,9 @@ eval_code2(PyCodeObject *co, PyObject *globals, PyObject *locals, w = GETNAMEV(oparg); v = POP(); if ((x = f->f_locals) == NULL) { - PyErr_SetString(PyExc_SystemError, - "no locals"); + PyErr_Format(PyExc_SystemError, + "no locals found when storing %s", + REPR(w)); break; } err = PyDict_SetItem(x, w, v); @@ -1449,8 +1452,9 @@ eval_code2(PyCodeObject *co, PyObject *globals, PyObject *locals, case DELETE_NAME: w = GETNAMEV(oparg); if ((x = f->f_locals) == NULL) { - PyErr_SetString(PyExc_SystemError, - "no locals"); + PyErr_Format(PyExc_SystemError, + "no locals when deleting %s", + REPR(w)); break; } if ((err = PyDict_DelItem(x, w)) != 0) @@ -1543,8 +1547,9 @@ eval_code2(PyCodeObject *co, PyObject *globals, PyObject *locals, case LOAD_NAME: w = GETNAMEV(oparg); if ((x = f->f_locals) == NULL) { - PyErr_SetString(PyExc_SystemError, - "no locals"); + PyErr_Format(PyExc_SystemError, + "no locals when loading %s", + REPR(w)); break; } x = PyDict_GetItem(x, w); @@ -1716,7 +1721,7 @@ eval_code2(PyCodeObject *co, PyObject *globals, PyObject *locals, PyFrame_FastToLocals(f); if ((x = f->f_locals) == NULL) { PyErr_SetString(PyExc_SystemError, - "no locals"); + "no locals found during 'import *'"); break; } err = import_all_from(x, v); |