Changeset 10430


Ignore:
Timestamp:
Aug 11, 2008, 6:47:36 AM (11 years ago)
Author:
gb
Message:

Restore %CHECK-TYPE.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-1/l1-error-system.lisp

    r10426 r10430  
    994994
    995995
     996
     997(defun %check-type (value typespec placename typename)
     998  (let ((condition (make-condition 'type-error
     999                                   :datum value
     1000                                   :expected-type typespec)))
     1001    (if typename
     1002      (setf (slot-value condition 'format-control)
     1003            (format nil "value ~~S is not ~A (~~S)." typename)))
     1004    (restart-case (%error condition nil (%get-frame-ptr))
     1005                  (store-value (newval)
     1006                               :report (lambda (s)
     1007                                         (format s "Assign a new value of type ~a to ~s" typespec placename))
     1008                               :interactive (lambda ()
     1009                                              (format *query-io* "~&New value for ~S :" placename)
     1010                                              (list (eval (read))))
     1011                               newval))))
    9961012
    9971013
Note: See TracChangeset for help on using the changeset viewer.