无法使用单个空选项序列或单个选项序列和默认情况的 case。
我预期
bq. (case 1 () :a :none)
返回 :none,但它会失败并抛出一个无用的异常:"Unhandled clojure.lang.ArityException: Wrong number of args (-2) passed to: core/max"
我预期 (case 1 () :a) 会失败并抛出 "java.lang.IllegalArgumentException: No matching clause",但事实上它也会失败并抛出
"Unhandled clojure.lang.ArityException: Wrong number of args (-2) passed to: core/max"
这似乎不一致,因为当存在其他替代方案时,传递空列表选项是可以的
bq. (case 1 () :a 2 :b :none)
如预期返回 :none
附加的补丁在转换成 case** 之前移除了测试-条款对中具有空测试列表,并添加了测试。