diff options
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/eval.c b/src/eval.c index 2161ab1e1ea..16ece744f42 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -1018,8 +1018,8 @@ usage: (let* VARLIST BODY...) */) | |||
| 1018 | } | 1018 | } |
| 1019 | 1019 | ||
| 1020 | var = maybe_remove_pos_from_symbol (var); | 1020 | var = maybe_remove_pos_from_symbol (var); |
| 1021 | if (!NILP (lexenv) && BARE_SYMBOL_P (var) | 1021 | CHECK_TYPE (BARE_SYMBOL_P (var), Qsymbolp, var); |
| 1022 | && !XBARE_SYMBOL (var)->u.s.declared_special | 1022 | if (!NILP (lexenv) && !XBARE_SYMBOL (var)->u.s.declared_special |
| 1023 | && NILP (Fmemq (var, Vinternal_interpreter_environment))) | 1023 | && NILP (Fmemq (var, Vinternal_interpreter_environment))) |
| 1024 | /* Lexically bind VAR by adding it to the interpreter's binding | 1024 | /* Lexically bind VAR by adding it to the interpreter's binding |
| 1025 | alist. */ | 1025 | alist. */ |
| @@ -1090,10 +1090,10 @@ usage: (let VARLIST BODY...) */) | |||
| 1090 | varlist = XCDR (varlist); | 1090 | varlist = XCDR (varlist); |
| 1091 | Lisp_Object var = maybe_remove_pos_from_symbol (SYMBOLP (elt) ? elt | 1091 | Lisp_Object var = maybe_remove_pos_from_symbol (SYMBOLP (elt) ? elt |
| 1092 | : Fcar (elt)); | 1092 | : Fcar (elt)); |
| 1093 | CHECK_TYPE (BARE_SYMBOL_P (var), Qsymbolp, var); | ||
| 1093 | tem = temps[argnum]; | 1094 | tem = temps[argnum]; |
| 1094 | 1095 | ||
| 1095 | if (!NILP (lexenv) && SYMBOLP (var) | 1096 | if (!NILP (lexenv) && !XBARE_SYMBOL (var)->u.s.declared_special |
| 1096 | && !XSYMBOL (var)->u.s.declared_special | ||
| 1097 | && NILP (Fmemq (var, Vinternal_interpreter_environment))) | 1097 | && NILP (Fmemq (var, Vinternal_interpreter_environment))) |
| 1098 | /* Lexically bind VAR by adding it to the lexenv alist. */ | 1098 | /* Lexically bind VAR by adding it to the lexenv alist. */ |
| 1099 | lexenv = Fcons (Fcons (var, tem), lexenv); | 1099 | lexenv = Fcons (Fcons (var, tem), lexenv); |
| @@ -1492,7 +1492,7 @@ internal_lisp_condition_case (Lisp_Object var, Lisp_Object bodyform, | |||
| 1492 | ptrdiff_t CACHEABLE clausenb = 0; | 1492 | ptrdiff_t CACHEABLE clausenb = 0; |
| 1493 | 1493 | ||
| 1494 | var = maybe_remove_pos_from_symbol (var); | 1494 | var = maybe_remove_pos_from_symbol (var); |
| 1495 | CHECK_SYMBOL (var); | 1495 | CHECK_TYPE (BARE_SYMBOL_P (var), Qsymbolp, var); |
| 1496 | 1496 | ||
| 1497 | Lisp_Object success_handler = Qnil; | 1497 | Lisp_Object success_handler = Qnil; |
| 1498 | 1498 | ||
| @@ -3272,18 +3272,18 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs, Lisp_Object *arg_vector) | |||
| 3272 | { | 3272 | { |
| 3273 | maybe_quit (); | 3273 | maybe_quit (); |
| 3274 | 3274 | ||
| 3275 | Lisp_Object next = XCAR (syms_left); | 3275 | Lisp_Object next = maybe_remove_pos_from_symbol (XCAR (syms_left)); |
| 3276 | if (!SYMBOLP (next)) | 3276 | if (!BARE_SYMBOL_P (next)) |
| 3277 | xsignal1 (Qinvalid_function, fun); | 3277 | xsignal1 (Qinvalid_function, fun); |
| 3278 | 3278 | ||
| 3279 | if (EQ (next, Qand_rest)) | 3279 | if (BASE_EQ (next, Qand_rest)) |
| 3280 | { | 3280 | { |
| 3281 | if (rest || previous_rest) | 3281 | if (rest || previous_rest) |
| 3282 | xsignal1 (Qinvalid_function, fun); | 3282 | xsignal1 (Qinvalid_function, fun); |
| 3283 | rest = 1; | 3283 | rest = 1; |
| 3284 | previous_rest = true; | 3284 | previous_rest = true; |
| 3285 | } | 3285 | } |
| 3286 | else if (EQ (next, Qand_optional)) | 3286 | else if (BASE_EQ (next, Qand_optional)) |
| 3287 | { | 3287 | { |
| 3288 | if (optional || rest || previous_rest) | 3288 | if (optional || rest || previous_rest) |
| 3289 | xsignal1 (Qinvalid_function, fun); | 3289 | xsignal1 (Qinvalid_function, fun); |
| @@ -3305,12 +3305,12 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs, Lisp_Object *arg_vector) | |||
| 3305 | arg = Qnil; | 3305 | arg = Qnil; |
| 3306 | 3306 | ||
| 3307 | /* Bind the argument. */ | 3307 | /* Bind the argument. */ |
| 3308 | if (!NILP (lexenv) && SYMBOLP (next)) | 3308 | if (!NILP (lexenv)) |
| 3309 | /* Lexically bind NEXT by adding it to the lexenv alist. */ | 3309 | /* Lexically bind NEXT by adding it to the lexenv alist. */ |
| 3310 | lexenv = Fcons (Fcons (next, arg), lexenv); | 3310 | lexenv = Fcons (Fcons (next, arg), lexenv); |
| 3311 | else | 3311 | else |
| 3312 | /* Dynamically bind NEXT. */ | 3312 | /* Dynamically bind NEXT. */ |
| 3313 | specbind (maybe_remove_pos_from_symbol (next), arg); | 3313 | specbind (next, arg); |
| 3314 | previous_rest = false; | 3314 | previous_rest = false; |
| 3315 | } | 3315 | } |
| 3316 | } | 3316 | } |