我正在将core.typed应用于一个处理大型哈希表序列的项目。我遇到了两个问题
1. 错误输出太大,无法由人类解释(每个错误4k)
2. 报告的错误似乎不正确,因为预期的类型和实际类型似乎是一致的。
我是通过编写一个比较预期类型和实际类型的函数得出这个结论的。这个函数也包括在内,可能是大哈希表错误输出更紧凑和可读的示例。
longOutput.clj文件包含了失败的函数(derive-sms_msg-fmt-fail ..)和几乎相似的通过函数(derive-sms_msg-fmt ..)(check-ns)。
此文件还包含函数(show-error),它打印类型错误的副本,然后分析派生类型与预期类型。派生类型是预期类型和一些基于可选键包含的派生类型的组合。所以我认为这个组合是预期类型的子类型,并且报告的错误是不正确的。
在文件show-error.output中包含错误分析的示例。