Function: majutsu-template--specialize-method-arg-type

majutsu-template--specialize-method-arg-type is a natively compiled function defined in majutsu-template.el.

Signature

(majutsu-template--specialize-method-arg-type RECEIVER-TYPE ARG-SPEC)

Documentation

Return expected argument type for ARG-SPEC specialized to RECEIVER-TYPE.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-template.el
(defun majutsu-template--specialize-method-arg-type (receiver-type arg-spec)
  "Return expected argument type for ARG-SPEC specialized to RECEIVER-TYPE."
  (let ((arg-type (majutsu-template--arg-type arg-spec)))
    (pcase (and arg-spec (majutsu-template--arg-specialize arg-spec))
      (:element-lambda
       (if-let* ((element-type (majutsu-template--type-ref-element-type receiver-type))
                 (lambda-args (majutsu-template--type-ref-lambda-arg-types arg-type)))
           (list :lambda
                 (cons element-type (cdr lambda-args))
                 (or (majutsu-template--type-ref-lambda-return-type arg-type)
                     'Unknown))
         arg-type))
      (_ arg-type))))