Function: majutsu-template--type-convertible-p

majutsu-template--type-convertible-p is a natively compiled function defined in majutsu-template.el.

Signature

(majutsu-template--type-convertible-p ACTUAL EXPECTED)

Documentation

Return non-nil if ACTUAL type can be used where EXPECTED is required.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-template.el
(defun majutsu-template--type-convertible-p (actual expected)
  "Return non-nil if ACTUAL type can be used where EXPECTED is required."
  (setq actual (majutsu-template--type-ref-normalize actual)
        expected (majutsu-template--type-ref-normalize expected))
  (let ((actual-base (majutsu-template--type-ref-base-type actual))
        (expected-base (majutsu-template--type-ref-base-type expected)))
    (cond
     ((eq expected 'Unknown) t)
     ((majutsu-template--type-structurally-compatible-p actual expected) t)
     ((majutsu-template--capability-type-p expected)
      (or (eq actual 'Unknown)
          (majutsu-template--type-supports-capability-p actual expected)))
     ((eq actual 'Unknown) nil)
     ((majutsu-template--type-explicitly-converts-to-p actual-base expected-base)
      t)
     (t nil))))