Completed
Details
Assignee
UnassignedUnassignedReporter
Kevin DowneyKevin DowneyApproval
OkPatch
Code and TestPriority
CriticalAffects versions
Fix versions
Details
Details
Assignee
Unassigned
UnassignedReporter
Kevin Downey
Kevin DowneyApproval
Ok
Patch
Code and Test
Priority
Affects versions
Fix versions
Created April 2, 2014 at 10:13 PM
Updated July 18, 2015 at 12:55 AM
Resolved July 18, 2015 at 12:55 AM
deftypes with fields whose names get munged fail when constructed in data reader functions.
Cause: To embed deftypes in the bytecode the compiler emits the value of each field, then emits a call to the deftypes underlying class's constructor. To get a list of fields the compiler calls .getBasis. The getBasis fields are the "clojure" level field names of the deftype, which the actual "jvm" level field names have been munged (replacing - with _, etc), so the compiler tries to generate code to set values on non-existent fields.
Approach: Munge the field name before emitting it in bytecode.
Patch: clj-1399-with-test.diff
Screened by: Alex Miller