Function: majutsu-template--check-method-segment-args

majutsu-template--check-method-segment-args is a natively compiled function defined in majutsu-template.el.

Signature

(majutsu-template--check-method-segment-args RECEIVER-TYPE METHOD-NAME ARGS)

Documentation

Validate ARGS for METHOD-NAME on RECEIVER-TYPE and return prepared args.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-template.el
(defun majutsu-template--check-method-segment-args (receiver-type method-name args)
  "Validate ARGS for METHOD-NAME on RECEIVER-TYPE and return prepared args."
  (let* ((dispatch (majutsu-template--method-dispatch-info receiver-type method-name))
         (dispatch-type (or (car-safe dispatch) receiver-type))
         (meta (cdr-safe dispatch))
         (specs (and meta (cdr (majutsu-template--fn-args meta))))
         (prepared (cl-loop for arg in args
                            for index from 0
                            for spec = (nth index specs)
                            collect (majutsu-template--specialize-method-arg
                                     dispatch-type spec arg))))
    (when meta
      (cl-loop for arg in prepared
               for spec in specs
               for expected = (majutsu-template--specialize-method-arg-type
                               dispatch-type spec)
               do (majutsu-template--assert-node-type
                   method-name
                   (majutsu-template--arg-name spec)
                   expected
                   arg)))
    prepared))