Changeset 12552


Ignore:
Timestamp:
Aug 7, 2009, 12:11:29 AM (10 years ago)
Author:
gz
Message:

r12550 from trunk (macroexpand-all fix)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711/ccl/level-1/l1-readloop.lisp

    r12408 r12552  
    333333              ((flet labels)
    334334               (destructuring-bind-body (bindings &body) (rest form)
    335                 `(,(first form)
    336                    ,(mapcar (lambda (binding)
    337                               (list* (first binding) (cdr (macroexpand-all `(lambda ,@(rest binding)) env))))
    338                             bindings)
    339                    ,@decls
    340                    ,@(mexpand body env))))
     335                 (let ((augmented-env
     336                        (augment-environment env :function (mapcar #'car bindings))))
     337                  `(,(first form)
     338                     ,(mapcar (lambda (binding)
     339                                (list* (first binding)
     340                                       (cdr (macroexpand-all `(lambda ,@(rest binding))
     341                                                             (if (eq (first form) 'labels)
     342                                                                 augmented-env
     343                                                                 env)))))
     344                              bindings)
     345                     ,@decls
     346                     ,@(mexpand body augmented-env)))))
    341347              (nfunction (list* 'nfunction (second form) (macroexpand-all (third form) env)))
    342348              (function
Note: See TracChangeset for help on using the changeset viewer.