mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 14:00:21 +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 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)) \
|
||||
? *scm_lookupcar(x, env, 1) \
|
||||
: SCM_CEVAL(SCM_CAR(x), env))
|
||||
#define EVALCELLCAR(x, env) (SCM_SYMBOLP (SCM_CAR (x)) \
|
||||
? *scm_lookupcar (x, env, 1) \
|
||||
: SCM_CEVAL (SCM_CAR (x), env))
|
||||
|
||||
#define EVALCAR(x, env) (SCM_NCELLP(SCM_CAR(x))\
|
||||
? (SCM_IMP(SCM_CAR(x)) \
|
||||
? SCM_EVALIM(SCM_CAR(x), env) \
|
||||
: SCM_GLOC_VAL(SCM_CAR(x))) \
|
||||
: EVALCELLCAR(x, env))
|
||||
#define EVALCAR(x, env) (SCM_NCELLP (SCM_CAR (x)) \
|
||||
? (SCM_IMP (SCM_CAR (x)) \
|
||||
? SCM_EVALIM (SCM_CAR (x), env) \
|
||||
: SCM_GLOC_VAL (SCM_CAR (x))) \
|
||||
: EVALCELLCAR (x, env))
|
||||
|
||||
#define EXTEND_ENV SCM_EXTEND_ENV
|
||||
|
||||
|
@ -2337,12 +2337,7 @@ dispatch:
|
|||
case (SCM_ISYMNUM (SCM_IM_SLOT_REF)):
|
||||
x = SCM_CDR (x);
|
||||
t.arg1 = EVALCAR (x, env);
|
||||
proc = 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)
|
||||
RETURN (SCM_STRUCT_DATA (t.arg1)[SCM_INUM (SCM_CADR (x))])
|
||||
|
||||
case (SCM_ISYMNUM (SCM_IM_SLOT_SET_X)):
|
||||
x = SCM_CDR (x);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue