mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 22:10:21 +02:00
* __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required parentheses in order to get the correct associativity.
This commit is contained in:
parent
af7546ebe2
commit
c07b3fefa5
2 changed files with 27 additions and 19 deletions
|
@ -1,3 +1,9 @@
|
|||
2001-04-19 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
|
||||
|
||||
* __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
|
||||
SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
|
||||
parentheses in order to get the correct associativity.
|
||||
|
||||
2001-04-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||
|
||||
* unif.c (scm_array_to_list): Added missing handling of arrays of
|
||||
|
|
|
@ -514,40 +514,42 @@ do { \
|
|||
|
||||
extern SCM scm_call_generic_0 (SCM gf);
|
||||
|
||||
#define SCM_WTA_DISPATCH_0(gf, arg, pos, subr) \
|
||||
return (SCM_UNPACK (gf) \
|
||||
? scm_call_generic_0 ((gf)) \
|
||||
: scm_wrong_type_arg ((subr), (pos), (arg)), 0)
|
||||
#define SCM_WTA_DISPATCH_0(gf, arg, pos, subr) \
|
||||
return (SCM_UNPACK (gf) \
|
||||
? scm_call_generic_0 ((gf)) \
|
||||
: (scm_wrong_type_arg ((subr), (pos), (arg)), SCM_UNSPECIFIED))
|
||||
#define SCM_GASSERT0(cond, gf, arg, pos, subr) \
|
||||
if (!(cond)) SCM_WTA_DISPATCH_0((gf), (arg), (pos), (subr))
|
||||
|
||||
extern SCM scm_call_generic_1 (SCM gf, SCM a1);
|
||||
|
||||
#define SCM_WTA_DISPATCH_1(gf, a1, pos, subr) \
|
||||
return (SCM_UNPACK (gf) \
|
||||
? scm_call_generic_1 ((gf), (a1)) \
|
||||
: scm_wrong_type_arg ((subr), (pos), (a1)), 0)
|
||||
#define SCM_WTA_DISPATCH_1(gf, a1, pos, subr) \
|
||||
return (SCM_UNPACK (gf) \
|
||||
? scm_call_generic_1 ((gf), (a1)) \
|
||||
: (scm_wrong_type_arg ((subr), (pos), (a1)), SCM_UNSPECIFIED))
|
||||
#define SCM_GASSERT1(cond, gf, a1, pos, subr) \
|
||||
if (!(cond)) SCM_WTA_DISPATCH_1((gf), (a1), (pos), (subr))
|
||||
|
||||
extern SCM scm_call_generic_2 (SCM gf, SCM a1, SCM a2);
|
||||
|
||||
#define SCM_WTA_DISPATCH_2(gf, a1, a2, pos, subr) \
|
||||
return (SCM_UNPACK (gf) \
|
||||
? scm_call_generic_2 ((gf), (a1), (a2)) \
|
||||
: scm_wrong_type_arg ((subr), (pos), \
|
||||
(pos) == SCM_ARG1 ? (a1) : (a2)), 0)
|
||||
#define SCM_WTA_DISPATCH_2(gf, a1, a2, pos, subr) \
|
||||
return (SCM_UNPACK (gf) \
|
||||
? scm_call_generic_2 ((gf), (a1), (a2)) \
|
||||
: (scm_wrong_type_arg ((subr), (pos), \
|
||||
(pos) == SCM_ARG1 ? (a1) : (a2)), \
|
||||
SCM_UNSPECIFIED))
|
||||
#define SCM_GASSERT2(cond, gf, a1, a2, pos, subr) \
|
||||
if (!(cond)) SCM_WTA_DISPATCH_2((gf), (a1), (a2), (pos), (subr))
|
||||
|
||||
extern SCM scm_apply_generic (SCM gf, SCM args);
|
||||
|
||||
#define SCM_WTA_DISPATCH_n(gf, args, pos, subr) \
|
||||
return (SCM_UNPACK (gf) \
|
||||
? scm_apply_generic ((gf), (args)) \
|
||||
: scm_wrong_type_arg ((subr), (pos), \
|
||||
scm_list_ref ((args), \
|
||||
SCM_MAKINUM ((pos) - 1))), 0)
|
||||
#define SCM_WTA_DISPATCH_n(gf, args, pos, subr) \
|
||||
return (SCM_UNPACK (gf) \
|
||||
? scm_apply_generic ((gf), (args)) \
|
||||
: (scm_wrong_type_arg ((subr), (pos), \
|
||||
scm_list_ref ((args), \
|
||||
SCM_MAKINUM ((pos) - 1))), \
|
||||
SCM_UNSPECIFIED))
|
||||
#define SCM_GASSERTn(cond, gf, args, pos, subr) \
|
||||
if (!(cond)) SCM_WTA_DISPATCH_n((gf), (args), (pos), (subr))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue