Changeset 11723


Ignore:
Timestamp:
04/03/09 19:41:28 (13 years ago)
Author:
ehuelsmann
Message:

Fix [interpreted mode] RESTART-CASE.{29,30,31}.

When expanding macros inside a macro, use the current expansion environment to make sure
all local macro definitions get expanded too.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/restart.lisp

    r11391 r11723  
    164164;; list), then WITH-CONDITION-RESTARTS is used implicitly to associate the
    165165;; indicated restarts with the condition to be signaled."
    166 (defun munge-restart-case-expression (expression)
    167   (let ((exp (macroexpand expression)))
     166(defun munge-restart-case-expression (expression env)
     167  (let ((exp (macroexpand expression env)))
    168168    (if (consp exp)
    169169  (let* ((name (car exp))
     
    187187        expression)))
    188188
    189 (defmacro restart-case (expression &body clauses)
     189(defmacro restart-case (expression &body clauses &environment env)
    190190  (let ((block-tag (gensym))
    191191        (temp-var (gensym))
     
    216216                                      ,@keys)))
    217217                         data)
    218                 (return-from ,block-tag ,(munge-restart-case-expression expression)))
     218                (return-from ,block-tag
     219                  ,(munge-restart-case-expression expression env)))
    219220               ,@(mapcan #'(lambda (datum)
    220221                            (let ((tag  (nth 1 datum))
Note: See TracChangeset for help on using the changeset viewer.