Function: majutsu-template--sugar-apply

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

Signature

(majutsu-template--sugar-apply OP ARGS)

Documentation

Dispatch helper applying OP to ARGS within sugar transformation.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-template.el
(defun majutsu-template--sugar-apply (op args)
  "Dispatch helper applying OP to ARGS within sugar transformation."
  (let ((special (majutsu-template--expand-special op args)))
    (if (not (eq special majutsu-template--no-special-expansion))
        (majutsu-template--rewrite special)
      (let* ((normalized (majutsu-template--operator-symbol op))
             (meta (or (majutsu-template--lookup-function-meta op)
                       (majutsu-template--lookup-function-meta normalized)))
             (self-binding (majutsu-template--current-self)))
        (cond
         (meta
          (apply (majutsu-template--fn-symbol meta)
                 (mapcar #'majutsu-template--sugar-transform args)))
         ((majutsu-template--maybe-self-dispatch op args))
         ((and (keywordp op)
               self-binding
               (majutsu-template--self-binding-node self-binding)
               (null (majutsu-template--self-binding-type self-binding))
               (not (majutsu-template--node-has-deferred-type-p
                     (majutsu-template--self-binding-node self-binding))))
          (user-error
           "majutsu-template: keyword %s requires a typed receiver; use an explicit :method form or provide a concrete self type"
           (majutsu-template--symbol->template-name op)))
         (t
          (user-error "majutsu-template: unknown operator %S" op)))))))