diff --git a/src/code/macros.lisp b/src/code/macros.lisp index 934bcbb98f0289ce615b2fc7ea8865ab1d036ae3..892e1cfb20713f17d09ea48743345b098a3471fe 100644 --- a/src/code/macros.lisp +++ b/src/code/macros.lisp @@ -192,9 +192,9 @@ ;;; (defmacro define-symbol-macro (name expansion) `(eval-when (:compile-toplevel :load-toplevel :execute) - (%define-symbol-macro ',name ',expansion))) + (%define-symbol-macro ',name ',expansion (c::source-location)))) ;;; -(defun %define-symbol-macro (name expansion) +(defun %define-symbol-macro (name expansion source-location) (unless (symbolp name) (error 'simple-type-error :datum name :expected-type 'symbol :format-control (intl:gettext "Symbol macro name is not a symbol: ~S.") @@ -202,7 +202,8 @@ (ecase (info variable kind name) ((:macro :global nil) (setf (info variable kind name) :macro) - (setf (info variable macro-expansion name) expansion)) + (setf (info variable macro-expansion name) expansion) + (set-defvar-source-location name source-location)) (:special (error 'simple-program-error :format-control (intl:gettext "Symbol macro name already declared special: ~S.")