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

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

0
Clojure

这应该按预期工作,例如

{{(Integer. 1N)}}

可能对{{BigInt}}、{{BigInteger}}和{{BigDecimal}}有效。

查看的方法是{{c.l.Reflector.paramArgTypeMatch}},如irc中的Rich所述。

11 答案

0

trptcolin发表的评论:

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

0

ataggart发表的评论:

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

0

trptcolin发表的评论:

这个补丁在左移BigInt时失败了一个测试:(bit-shift-left 1N 10000)。原因是补丁更改了从(Object, Object)到(long, int)的(BigInt, Long)分派。

很明显,无法应用此补丁(除非另一个更改使其成为可能),但我将其提出作为对话的开始。

0

ataggart发表的评论:

来自邮件列表的我的评论

如果测试失败,这很可能意味着Numbers.shiftLeft(long,int)
被选用了,而不是Numbers.shiftLeft(Object,Object)。鉴于1N是一个
Object(可以超过long类型大小),方法选择
是错误的,因此补丁是损坏的。


关于“简单”修改paramArgTypeMatch的建议是不够的,因为决定优先选择一种方法而不是另一种的方法机制存在于编译器中,并且不够智能,不足以做出这样的决定。

0

评论人:redinger

考虑将此内容从Release.next移除 - 请求Chas的意见。

0
_评论人:cemerick_

我恐怕现在对所涉及的问题并没有特别深入的见解。我最初遇到了一段时间前记录的问题,并按照Rich的建议打开了工单。如果工单的文本使任何人走入了无效的路径,我感到非常抱歉...
0

评论人:lvanderhart

关于位移动的问题已经无关紧要,因为已经决定位移动只适用于32/64位值。

仍然是一个有效的问题,但根据Rich的要求已降低优先级。

0

评论人:alexott

原始补丁的修改版本

0

评论人:jafingerhut

Alex,你介意附上一个独一无二的文件名吗?我知道JIRA让我们可以创建具有相同文件名的多个附件,并且我们知道我们可以通过日期和上传附件的人员账户来区分它们,但给他们同一个名字只会引起混淆。

0

评论人:alexott

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

0
参考: https://clojure.atlassian.net/browse/CLJ-666(由cemerick报告)
...