如何重现
broz@macmicro:~$ grep try ~/.lein/profiles.clj
(link: lein-try "0.4.3")
broz@macmicro:~$ lein try org.clojure/core.typed
nREPL 服务器已启动于端口 56675 - 主机 127.0.0.1 - nrepl://127.0.0.1:56675
REPL-y 0.3.5,nREPL 0.2.6
Clojure 1.6.0
Java HotSpot(TM) 64位服务器虚拟机 1.8.0_40-b26
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
源:(source function-name-here)
JavaDoc:(javadoc java-object-or-class-here)
Exit: Control+D or (exit) or (quit)
结果:存储在变量 1, 2, 3, 在 e 中抛出异常
user=> (require (link: 'clojure.core.typed :as 't))
nil
user=> (t/cf (t/defn repro-core-typed-9 (link: m :- (t/Seqable String)) (group-by identity m)))
初始化 core.typed ...
构建 core.typed 基础环境 ...
已完成基础环境构建
"执行时间:10484.613659 毫秒"
core.typed 初始化。
已废弃的语法(NO_SOURCE_PATH):所有语法均已废弃,请使用 clojure.core.typed/All
已废弃的语法(NO_SOURCE_PATH):U 语法已废弃,请使用 clojure.core.typed/U
类型错误(NO_SOURCE_PATH:1:60)内部错误(NO_SOURCE_PATH:1:60)无法解析类型:Seqable
提示:Seqable 是否适用于范围?
提示:是否通过 check-ns、cf 或 typed-deps 找到了 Seqable 的注解?
错误
user=>
预期结果
不应给出内部错误。
注意
core.typed 规则!我在项目中发现它非常有用,并且在我将其放到生产环境中之前找到了许多错误--它是一个非常有用的工具。