id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc
865,restart-case mishandles cerror,gz,,"{{{

? (defun test (name) (restart-case (cerror ""foo ~s"" ""bar ~s"" name)
			  (a-restart () nil)))
TEST
? (test 'hah)
> Error: bar HAH
> While executing: TEST, in process listener(1).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: foo #<error printing object>
}}}

Note the `#<error printing object>`.  The problem seems to be restart-case transforming the cerror call and losing its format args in the process.


{{{
(pprint (macroexpand-1 '(restart-case (cerror ""foo ~s"" ""bar ~s"" name)
			  (a-restart () nil))))

(BLOCK #:G672
  (LET* ((#:G673 (%CONS-RESTART 'A-RESTART NIL NIL NIL NIL))
         (#:G670 (LIST #:G673)))
    (DECLARE (DYNAMIC-EXTENT #:G673 #:G670))
    (CATCH #:G670
      (LET ((%RESTARTS% (CONS #:G670 %RESTARTS%)))
        (DECLARE (DYNAMIC-EXTENT %RESTARTS%))
        (RETURN-FROM #:G672
          (LET ((#:G671
                 (CONDITION-ARG ""bar ~s"" (LIST NAME) 'SIMPLE-ERROR)))
            (WITH-CONDITION-RESTARTS
              #:G671
              #:G670
              (CERROR ""foo ~s"" #:G671)))))))

}}}",defect,closed,normal,Clozure CL 1.8,ANSI CL Compliance,trunk,fixed,,
