- (restart-case
- (signal (make-condition 'simple-compiler-note
- :format-control format-string
- :format-arguments format-args))
- (muffle-warning ()
- (return-from compiler-notify (values))))
- (incf *compiler-note-count*)
- (print-compiler-message (format nil "note: ~A" format-string)
- format-args))
+ (let ((condition
+ (coerce-to-condition datum args
+ 'simple-compiler-note 'compiler-notify)))
+ (restart-case
+ (signal condition)
+ (muffle-warning ()
+ (return-from compiler-notify (values))))
+ (incf *compiler-note-count*)
+ (multiple-value-bind (format-string format-args)
+ (if (typep condition 'simple-condition)
+ (values (simple-condition-format-control condition)
+ (simple-condition-format-arguments condition))
+ (values "~A"
+ (list (with-output-to-string (s)
+ (princ condition s)))))
+ (print-compiler-message (format nil "note: ~A" format-string)
+ format-args))))