VerifyError with symbol metadata, macros, and defrecord

Description

The code below defines a macro wrapper around defrecord. Using it causes a VerifyError:

Once this happens, the running Clojure process is oddly damaged. Changing the macro to a working version (see below) will not make the sample work with the tagged symbol, almost as if the symbol
'one (below) became corrupt. You either need to start a new REPL, or try to invoke the macro with a different tagged symbol.

The following code does work (note the forced conversion to a string):

Environment

Affects Clojure from 1.2.0 to 1.3.0-alpha4

Activity

Show:

import December 18, 2010 at 7:02 PM

Comment made by: vetoshev

Thanks for the fix! Works great.

Stuart Halloway December 17, 2010 at 7:53 PM

Very confusing. Reproduced everything in the report. Moreover, leaving out the call to keyword is enough to avoid the problem. The following variant works fine:

Rich Hickey December 17, 2010 at 2:47 PM

Stu, can you please verify?

Completed

Assignee

Reporter

Approval

Priority

Fix versions

Created December 16, 2010 at 2:54 PM
Updated July 26, 2013 at 4:35 PM
Resolved July 26, 2013 at 4:35 PM