请在 2024 年 Clojure 调查问卷 中分享您的想法!

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

0
Clojure

这应该会对使用完全限定名称作为参数发出抱怨

(defmacro lookup (link: ))
`(reify clojure.lang.ILookup

      (valAt (link: _ key))))

但它简单地忽略了该参数,并在方法体内选择了 clojure.core/key。

5 个答案

0

留言者:importer

richhickey 说:我不确定虫子是你说的那样,或解决方案应该是你所建议的那样。真正的问题是限定 key 的解析。另一个可能性是忽略该限定符。

0

留言者:importer

http://www.assembla.com/spaces/clojure/tickets/348 转换而来
附件
0001-Add-a-test-for-348-reify-shouldn-t-accept-qualified-.patch - https://www.assembla.com/spaces/clojure/documents/d2xUJIxTyr36fseJe5cbLA/download/d2xUJIxTyr36fseJe5cbLA

0

留言者:importer

technomancy 说:([文件链接]: [file:d2xUJIxTyr36fseJe5cbLA)):一个测试来暴露不希望的行为

0

留言者:importer

technomancy said: 很有趣。所以在这里要求auto-genym并不合适?为什么reify方法和代理方法(proxy)的规则不同呢?

(defmacro lookup (link: ))
`(proxy (link: clojure.lang.ILookup) (link: )

      (valAt (link: key) key)))

(lookup)

无法使用限定名称作为参数:clojure.core/key
(link: 抛出类 java.lang.Exception)

0
参考: https://clojure.atlassian.net/browse/CLJ-348 (由 alex+import 报告)
...