无法使用包含单个空选项序列的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**之前移除了包含空测试列表的测试子句对,并添加了测试。