我相当肯定这个应该可以 passes
(ns moonrise
$ (:require [clojure.core.typed :refer :all]))
(ann-record X [a :- Number])
(defrecord X [a])
(ann x X)
(def x (merge (X. 3) {:z 4}))
但它给出
类型错误 (moonrise:8:8) 多态函数 clojure.core/merge 无法应用于这些参数
多态变量
k
v
域
nil *
(clojure.lang.IPersistentMap k v) (clojure.lang.IPersistentMap k v) *
(Option (clojure.lang.IPersistentMap k v)) *
参数
moonrise.X (HMap :mandatory {:z (Value 4)} :complete? true)
范围
nil
(clojure.lang.IPersistentMap k v)
(Option (clojure.lang.IPersistentMap k v))
期望类型
moonrise.X
在: (clojure.core/merge (new moonrise.X 3) (quote {:z 4}))
在: (def x (clojure.core/merge (new moonrise.X 3) (quote {:z 4})))
类型检查器:发现1个错误