`(lambda ,(second thing))
`(function ,thing)))
+(define-source-context named-lambda (name lambda-list &body forms)
+ (declare (ignore lambda-list forms))
+ (if (and (consp name) (eq 'eval (first name)))
+ (second name)
+ `(named-lambda ,name)))
+
;;; Return the first two elements of FORM if FORM is a list. Take the
;;; CAR of the second form if appropriate.
(defun source-form-context (form)
(let ((context *compiler-error-context*))
(if (compiler-error-context-p context)
(values context t)
- (let* ((path (or (and (boundp '*current-path*) *current-path*)
- (if context
- (node-source-path context)
- nil)))
+ (let* ((path (or (and (node-p context) (node-source-path context))
+ (and (boundp '*current-path*) *current-path*)))
(old
(find (when path (source-path-original-source path))
(remove-if #'null old-contexts)
(note-message-repeats stream)
(setq last nil)
(pprint-logical-block (stream nil :per-line-prefix "; ")
- (format stream "in:~{~<~% ~4:;~{ ~S~}~>~^ =>~}" in))
+ (format stream "in:~{~<~% ~4:;~{ ~:S~}~>~^ =>~}" in))
(terpri stream))
(unless (and last