在我们的2024年Clojure现状调查中分享您的想法!点此参与调查

欢迎!有关如何使用此页面的一些更多信息,请查阅关于页面

0 投票
core.typed
我确信这应该会通过


(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个错误

1 答案

0 投票
参考: https://clojure.atlassian.net/browse/CTYP-72 (由 alex+import 报告)
...