mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 15:40:19 +02:00
* eval.c (SCM_CEVAL): Removed check for unbound slot in
SCM_IM_SLOT_REF. (This is now handled in a smarter way in GOOPS.)
This commit is contained in:
parent
e1e11745b6
commit
7d2b68a85a
1 changed files with 10 additions and 15 deletions
|
@ -140,17 +140,17 @@ SCM (*scm_memoize_method) (SCM, SCM);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define SCM_CEVAL scm_ceval
|
#define SCM_CEVAL scm_ceval
|
||||||
#define SIDEVAL(x, env) if (SCM_NIMP(x)) SCM_CEVAL((x), (env))
|
#define SIDEVAL(x, env) if (SCM_NIMP (x)) SCM_CEVAL((x), (env))
|
||||||
|
|
||||||
#define EVALCELLCAR(x, env) (SCM_SYMBOLP (SCM_CAR(x)) \
|
#define EVALCELLCAR(x, env) (SCM_SYMBOLP (SCM_CAR (x)) \
|
||||||
? *scm_lookupcar(x, env, 1) \
|
? *scm_lookupcar (x, env, 1) \
|
||||||
: SCM_CEVAL(SCM_CAR(x), env))
|
: SCM_CEVAL (SCM_CAR (x), env))
|
||||||
|
|
||||||
#define EVALCAR(x, env) (SCM_NCELLP(SCM_CAR(x))\
|
#define EVALCAR(x, env) (SCM_NCELLP (SCM_CAR (x)) \
|
||||||
? (SCM_IMP(SCM_CAR(x)) \
|
? (SCM_IMP (SCM_CAR (x)) \
|
||||||
? SCM_EVALIM(SCM_CAR(x), env) \
|
? SCM_EVALIM (SCM_CAR (x), env) \
|
||||||
: SCM_GLOC_VAL(SCM_CAR(x))) \
|
: SCM_GLOC_VAL (SCM_CAR (x))) \
|
||||||
: EVALCELLCAR(x, env))
|
: EVALCELLCAR (x, env))
|
||||||
|
|
||||||
#define EXTEND_ENV SCM_EXTEND_ENV
|
#define EXTEND_ENV SCM_EXTEND_ENV
|
||||||
|
|
||||||
|
@ -2337,12 +2337,7 @@ dispatch:
|
||||||
case (SCM_ISYMNUM (SCM_IM_SLOT_REF)):
|
case (SCM_ISYMNUM (SCM_IM_SLOT_REF)):
|
||||||
x = SCM_CDR (x);
|
x = SCM_CDR (x);
|
||||||
t.arg1 = EVALCAR (x, env);
|
t.arg1 = EVALCAR (x, env);
|
||||||
proc = SCM_STRUCT_DATA (t.arg1)[SCM_INUM (SCM_CADR (x))];
|
RETURN (SCM_STRUCT_DATA (t.arg1)[SCM_INUM (SCM_CADR (x))])
|
||||||
if (proc == SCM_UNBOUND)
|
|
||||||
scm_misc_error (NULL,
|
|
||||||
"Unbound slot in object %S",
|
|
||||||
SCM_LIST1 (t.arg1));
|
|
||||||
RETURN (proc)
|
|
||||||
|
|
||||||
case (SCM_ISYMNUM (SCM_IM_SLOT_SET_X)):
|
case (SCM_ISYMNUM (SCM_IM_SLOT_SET_X)):
|
||||||
x = SCM_CDR (x);
|
x = SCM_CDR (x);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue