fix source information for functions from EVAL
[sbcl.git] / src / compiler / debug-dump.lisp
index 6633b3f..f6db341 100644 (file)
 
      :form (let ((direct-file-info (source-info-file-info info)))
              (when (eq :lisp (file-info-name direct-file-info))
-               (let ((form (elt (file-info-forms direct-file-info) 0)))
-                 ;; The form COMPILE saves may include gunk
-                 ;; from %SIMPLE-EVAL -- this gets rid of that.
-                 (sb!impl::eval-lambda-source-lambda form))))
+               (elt (file-info-forms direct-file-info) 0)))
      :function function)))
 
 ;;; Given an arbitrary sequence, coerce it to an unsigned vector if
   (let* ((name (leaf-debug-name var))
          (save-tn (and tn (tn-save-tn tn)))
          (kind (and tn (tn-kind tn)))
-         (flags 0))
+         (flags 0)
+         (info (lambda-var-arg-info var)))
     (declare (type index flags))
     (when minimal
       (setq flags (logior flags compiled-debug-var-minimal-p))
       (setq flags (logior flags compiled-debug-var-save-loc-p)))
     (unless (or (zerop id) minimal)
       (setq flags (logior flags compiled-debug-var-id-p)))
+    (when info
+      (case (arg-info-kind info)
+        (:more-context
+         (setq flags (logior flags compiled-debug-var-more-context-p)))
+        (:more-count
+         (setq flags (logior flags compiled-debug-var-more-count-p)))))
     (vector-push-extend flags buffer)
     (unless minimal
       (vector-push-extend name buffer)