我将 core.typed 应用于一个项目,该项目管理较大型的哈希表序列。我遇到了两个问题
1. 错误输出太大,无法由人类解释(每个错误4k)
2. 报告的错误似乎是不正确的,因为期望的类型和实际类型似乎匹配。
我是通过编写一个比较期望类型和实际类型的功能得出这个结论的。这个函数也包括在内,它可能是如何为大型哈希表上的错误生成更紧凑和可读输出的一个示例。
longOutput.clj 包含失败的功能(derive-sms_msg-fmt-fail ..)和几乎相同的功能(derive-sms_msg-fmt ..),该功能通过检查命名空间(check-ns)。
该文件还包括函数(show-error),它打印出复制类型错误,并随后分析导出的类型与期望类型。导出的类型是期望类型和基于包含可选键的一些派生的类型的并集。所以在我看来,这个并集是期望类型的子类型,报告的错误是不正确的。
在文件 show-error.output 中包括了错误分析的一个示例。