<< Back to previous view

[CLJ-1021] (let [i 5] (defmacro m [v] v) m) interprets m as a function, not a macro Created: 02/Jul/12  Updated: 18/Jan/16

Status: Open
Project: Clojure
Component/s: None
Affects Version/s: Release 1.4
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Zii Prime Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: File 001-propagate-on-macro-meta.diff    
Patch: Code

 Description   
(let [i 5] (defmacro m [& args] args) (def x (m (inc 5) (inc 6) (inc 7))) [x m (meta #'m)])

is

[(8) #<user$eval522$m__523 user$eval522$m__523@11a74355> {:macro true, :ns #<Namespace user>, :name m, :arglists ([& args]), :line 1, :file "NO_SOURCE_PATH"}]

It appears to be interpreting m as a function despite the metadata. This behavior only shows up inside the (let ...).



 Comments   
Comment by Nicola Mometto [ 18/Aug/12 11:43 AM ]

The problem is the same as the one for http://dev.clojure.org/jira/browse/CLJ-918

The patch linked there was mine but i had no CA signed at that time, and no account on jira.

Here is the same patch in the correct format.

Bug #918 should be closed as this is a duplicate

Comment by Andy Fingerhut [ 25/Oct/13 12:23 PM ]

I've not looked into details yet, but current patch fails to apply cleanly as of Oct 25, 2013 latest Clojure master.

Generated at Mon Sep 26 09:01:12 CDT 2016 using JIRA 4.4#649-r158309.