如何重现
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 函数名这里)
Javadoc:(javadoc java对象或类)
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 已初始化。
已弃用语法(无源文件路径):所有语法均已弃用,请使用 clojure.core.typed/All
已弃用语法(无源文件路径):U 语法已弃用,请使用 clojure.core.typed/U
类型错误(无源文件路径:1:60)内部错误(无源文件路径:1:60)无法解析类型:Seqable
提示:Seqable 在作用域内吗?
提示:是否通过 check-ns、cf 或 typed-deps 找到 Seqable 的注解?
错误
user=>
预期结果
不应产生内部错误。
注意
core.typed 规则!我在项目中发现它非常有用,并且已在它们生产之前发现了很多错误——它是一个很棒的辅助工具。