欢迎!请参阅关于页面以获取更多关于如何使用本网站的信息。
它应该按预期工作,例如
{{(Integer. 1N)}}
可能适用于{{BigInt}}、{{BigInteger}}和{{BigDecimal}}。
要查看的方法是{{c.l.Reflector.paramArgTypeMatch}},根据irc中的Rich的说法。
评论者:trptcolin
关于这对bit-shift-left有什么影响的clojure-dev列表上的问题: http://groups.google.com/group/clojure-dev/browse_thread/thread/2191cbf0048d8ca6
评论者:ataggart
CLJ-445补丁修复了此问题。
此补丁在执行测试时失败,测试内容是bit-shifting BigInt:`bit-shift-left 1N 10000`。原因在于补丁将`(BigInt, Long)`的派发从`(Object, Object)`更改为`(long, int)`。
这显然是不能应用(除非另一个更改使其可行),但我将它放在这里作为对话的开始。
从邮件列表中我的评论
如果测试失败,可能是Numbers.shiftLeft(long,int被选择而不是Numbers.shiftLeft(Object,Object)。鉴于1N是一个对象(可以超过long的大小),方法选择是错误的,因此补丁是无效的。
"仅仅"修改paramArgTypeMatch的建议是不够的,因为这个机制偏好一种方法而不是另一种方法在编译器中,并且不够智能,不足以做出这样的决定。
评论者:redinger
考虑将此从Release.next中移除 - 向Chas征求意见。
评论者:lvanderhart
关于位移动的问题不再有争议,因为已经决定位移动只为32/64位值。
仍然是一个有效问题,但根据Rich的建议已被降级。
评论者:alexott
原始补丁的修改版本
评论者:jafingerhut
亚历克斯,你介意用唯一的文件名附上它吗?我知道 JIRA 允许我们使用相同的文件名创建多个附件,我也知道我们可以通过日期和上传附件的人员的账户来区分它们,但给他们相同的名字似乎只会引起混淆。
将更新的补丁重命名为唯一名称