欢迎!请参阅 关于 页面以获取有关此操作的更多信息。
它应该按预期工作,例如
{{(Integer. 1N)}}
可能适用于 {{BigInt}}、{{BigInteger}} 和 {{BigDecimal}}。
可查看的方法是 {{c.l.Reflector.paramArgTypeMatch}},如 Rich 在 irc 中所述。
由 trptcolin 发布的评论
关于如何影响位左移的 clojure-dev 列表中的问题:http://groups.google.com/group/clojure-dev/browse_thread/thread/2191cbf0048d8ca6
由 ataggart 发布的评论
CLJ-445 补丁修复了此问题。
此补丁会在对 BigInt 进行位左移测试失败:(bit-shift-left 1N 10000)。原因是补丁将 (BigInt, Long) 的分派从 (Object, Object) 更改为了 (long, int)。
(bit-shift-left 1N 10000)
显然,无法应用此补丁(除非另一个更改使其可行),但我将其作为对话的开端提出。
来自邮件列表的我的评论
如果测试失败,这很可能是由于Numbers.shiftLeft(long,int)被选择而不是Numbers.shiftLeft(Object,Object)。鉴于1N是一个Object(可以超过long的大小),方法选择是不正确的,因此补丁是损坏的。
单纯修改paramArgTypeMatch的建议是不够的,因为这个机制在编译器中,还不够智能,无法做这类决定。
评论者:redinger
考虑将此内容移出Release.next - 征求Chas的评论。
评论者:lvanderhart
与位运算相关的问题已不再有意义,因为已决定位运算仅适用于32/64位值。
尽管是一个有效的问题,但Rich将其降级。
评论者:alexott
原始补丁的修改版本
评论者:jafingerhut
亚历克斯,你介意用唯一的文件名来附加它吗?我知道JIRA允许我们创建具有相同文件名的多个附件,我也知道我们可以通过日期和上传附件的人的账户来区分它们,但给它们相同的名字似乎只会引起混淆。
已将更新补丁重命名为唯一的名称