2024 Clojure状态调查中分享您的想法!

欢迎!有关如何工作的更多信息,请参阅关于页面。

0
Clojure

这应该像预期的那样工作,例如

{{(Integer. 1N)}}

可能是{{BigInt}}、{{BigInteger}}和{{BigDecimal}}

可查看的方法是{{c.l.Reflector.paramArgTypeMatch}},按照Rich在irc中的建议。

11 答案

0

评论者:trptcolin

关于这如何影响位左移的clojure-dev列表上的问题:http://groups.google.com/group/clojure_dev/browse_thread/thread/2191cbf0048d8ca6

0

评论者:ataggart

CLJ-445补丁修复了这个问题。

0

评论者:trptcolin

此补丁在位移操作测试失败:`(位左移 1N 10000)`。原因在于补丁将`(BigInt, Long)`的派发从`(Object, Object)`更改为`(long, int)`。

显然,这不能直接应用(除非另一处改变使其成为可能),但我将其作为对话的开始。

0

评论者:ataggart

来自邮件列表的我的评论

如果测试失败,可能意味着Numbers.shiftLeft(long,int)被选择而不是Numbers.shiftLeft(Object,Object)
鉴于1N是一个Object(可以超过long类型的大小),选择方法是不正确的,因此补丁有问题。
由于编译器没有足够的智能来做出这些决定,因此修改paramArgTypeMatch的“简单”建议是不够的。
因此,补丁是破坏性的。


关于将其移出Release.next的建议,正在征求Chas的评论。

0

评论者:redinger

正在考虑将该内容移出Release.next,征求Chas的评论。

0
_评论者:cemerick_

恐怕此时我对所涉及的问题没有特别的见解。我最初遇到这个问题是一段时间以前,并在Rich的建议下创建了工单。如果工单的文本让任何人走上了没有结果的道路,我感到很抱歉...
0

评论者:lvanderhart

关于位操作的这些问题没有意义,因为已经做出决定,位操作仅适用于32/64位值。

尽管仍然是一个有效的问题,但按照Rich的要求已经被降低优先级。

0

评论者:alexott

原始补丁的修改版本

0

评论由:jafingerhut 提出:

亚历克斯,你能用唯一的文件名将其附加吗?我知道 JIRA 允许我们创建具有相同文件名的多个附件,我知道我们可以通过日期和上传附件的人的账户来区分它们,但给它们相同的名字似乎只会引起混淆。

0

评论者:alexott

将更新后的补丁重命名为唯一名称

0
参考: https://clojure.atlassian.net/browse/CLJ-666(由 cemerick 提交的)
...