无法使用单个空选项序列或单个选项序列与默认条款结合使用case。
我期望
bq. (case 1 () :a :none)
返回 :none,但它失败并返回一个没有信息性的异常:“未处理的 clojure.lang.ArityException:传递给:core/max 参数数量不正确(-2)”
我期望 (case 1 () :a) 以“java.lang.IllegalArgumentException:没有匹配的分句”失败,但事实上它也以相同的异常失败:
"未处理的 clojure.lang.ArityException:传递给:core/max 参数数量不正确(-2)"
这似乎不一致,因为当其他选择存在时,传递空列表是可行的
bq. (case 1 () :a 2 :b :none)
返回预期结果:none
所附补丁在转换为case*之前删除包含空测试列表的测试条款对,并添加了测试。