reify allows use of qualified name as method parameter

Description

This should complain about using a fully-qualified name as a parameter:

(defmacro lookup []
`(reify clojure.lang.ILookup
(valAt [_ key])))

Instead it simply ignores that parameter in the method body in favour of clojure.core/key.

Environment

None

Activity

Show:

importAugust 24, 2010 at 2:03 PM

Comment made by: importer

technomancy said: Interesting. So it's not appropriate to require auto-gensym here? Why are the rules different for reify methods vs proxy methods?

> (defmacro lookup []
`(proxy [clojure.lang.ILookup] []
(valAt [key] key)))
> (lookup)

Can't use qualified name as parameter: clojure.core/key
[Thrown class java.lang.Exception]

importAugust 24, 2010 at 2:03 PM

Comment made by: importer

richhickey said: I'm not sure the bug is what you say it is, or the resolution should be what you suggest. The true problem is the resolution of key when qualified. Another possibility is to ignore the qualifier there.

importAugust 24, 2010 at 2:03 PM

Comment made by: importer

technomancy said: [[file:d2xUJIxTyr36fseJe5cbLA]]: A test to expose the unwanted behaviour

importAugust 24, 2010 at 2:03 PM

Comment made by: importer

Converted from http://www.assembla.com/spaces/clojure/tickets/348
Attachments:
0001-Add-a-test-for-348-reify-shouldn-t-accept-qualified-.patch - https://www.assembla.com/spaces/clojure/documents/d2xUJIxTyr36fseJe5cbLA/download/d2xUJIxTyr36fseJe5cbLA

Details

Assignee

Reporter

Approval

Vetted

Priority

Fix versions

Created May 13, 2010 at 8:30 PM
Updated July 26, 2013 at 4:31 PM