X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir1tran-lambda.lisp;h=f1570193a0f5eb2a395b55801eaeca640f6a2b66;hb=0cff6b0b7e6f1d148586f81f620b9c86ed217caa;hp=bd8f75a27a387f1ffa5a1540ce07dbee7f4ea7f8;hpb=87cd7d9848d9beddbf74e9d56a0c0aea6e189ead;p=sbcl.git diff --git a/src/compiler/ir1tran-lambda.lisp b/src/compiler/ir1tran-lambda.lisp index bd8f75a..f157019 100644 --- a/src/compiler/ir1tran-lambda.lisp +++ b/src/compiler/ir1tran-lambda.lisp @@ -868,8 +868,7 @@ :allowp allowp :keyp keyp :%source-name source-name - :%debug-name (debug-name '&optional-dispatch - (or debug-name source-name)) + :%debug-name debug-name :plist `(:ir1-environment (,*lexenv* ,*current-path*)))) @@ -933,6 +932,12 @@ :debug-name debug-name)))) (setf (functional-inline-expansion res) form) (setf (functional-arg-documentation res) (cadr form)) + (when (boundp '*lambda-conversions*) + ;; KLUDGE: Not counting TL-XEPs is a lie, of course, but + ;; keeps things less confusing to users of TIME, where this + ;; count gets used. + (unless (and (consp debug-name) (eq 'tl-xep (car debug-name))) + (incf *lambda-conversions*))) res)))) (defun wrap-forms-in-debug-catch (forms) @@ -988,7 +993,7 @@ ((named-lambda) (let ((name (cadr thing)) (lambda-expression `(lambda ,@(cddr thing)))) - (if (legal-fun-name-p name) + (if (and name (legal-fun-name-p name)) (let ((defined-fun-res (get-defined-fun name)) (res (ir1-convert-lambda lambda-expression :maybe-add-debug-catch t @@ -1003,7 +1008,8 @@ res) (ir1-convert-lambda lambda-expression :maybe-add-debug-catch t - :debug-name name)))) + :debug-name + (or name (name-lambdalike thing)))))) ((lambda-with-lexenv) (ir1-convert-inline-lambda thing :source-name source-name