请在2024 Clojure现状调查中分享您的想法!

欢迎!请查看关于页面了解更多关于其如何工作的信息。

0 票票
Spec

问题:multi-spec确实可以在其内部生成从已经实现方法的值开始的重新标记值。然而,用户必须有意指定不同的重新标记键,并且multi-spec会生成不兼容的值(导致such-that失败)。层次调度就是一个例子,其中方法分派值不一定是有效的标签值。

建议的解决方案:在生成重新标记值时,multi-spec应该首先尝试现有该键的规范,并生成“such-that”它可能是多方法的一个有效分派值,只有在没有为标签键指定规范的情况下,才直接从基于多方法的机制生成。

2 个答案

0 票票

评论者:lgs32a

改进了建议的解决方案,用“用户规范是分派值的子集”和相反的情况来覆盖。

0 票票
引用:https://clojure.atlassian.net/browse/CLJ-2158(由lgs32a报告)
...