Function: majutsu-template--register-function

majutsu-template--register-function is a natively compiled function defined in majutsu-template.el.

Signature

(majutsu-template--register-function META)

Documentation

Register custom function described by META (a majutsu-template--fn).

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-template.el
(defun majutsu-template--register-function (meta)
  "Register custom function described by META (a `majutsu-template--fn')."
  (let* ((name (majutsu-template--fn-name meta))
         (fn-symbol (majutsu-template--fn-symbol meta))
         (owner (majutsu-template--fn-owner meta))
         (keyword-flag (majutsu-template--fn-keyword meta))
         (sym (intern name))
         (keyword (intern (concat ":" name)))
         (pre-existing (gethash name majutsu-template--function-registry)))
    (if owner
        (progn
          (unless (majutsu-template--lookup-type
                   (majutsu-template--type-ref-base-type owner))
            (message "majutsu-template: warning – declaring %s for unknown type %S"
                     name owner))
          (when keyword-flag
            ;; keywords are 0-argument methods; ensure signature reflects it
            (let ((args (majutsu-template--fn-args meta)))
              (when (> (length args) 1)
                (message "majutsu-template: keyword %s on %S declares more than self argument"
                         name owner))))
          (puthash (cons (majutsu-template--type-ref-dispatch-kind owner) name)
                   meta
                   majutsu-template--method-registry))
      (when pre-existing
        (message "majutsu-template: redefining template helper %s" name))
      (puthash name meta majutsu-template--function-registry)
      (puthash sym name majutsu-template--function-name-map)
      (puthash keyword name majutsu-template--function-name-map))
    fn-symbol))