Details
-
Type:
Enhancement
-
Status:
Closed
-
Priority:
Major
-
Resolution: Completed
-
Affects Version/s: Release 1.3
-
Fix Version/s: Release 1.3
-
Component/s: None
-
Labels:None
-
Patch:Code and Test
-
Approval:Ok
Description
The defrecord read/print functionality added in clojure-1.3.0-alpha7 based on ticket CLJ-374 provided a baseline semantics for the described functionality. However, there were some short-comings of the implementation that should be fixed, including:
- Symbols not supported in the record/type reader form
- Type forms are not performant as a result of being handled by print-dup
- This also leads to a situation where hinting is problematic
- The boxClass method uses Reflector
- Emission of records pulls out k/v's to create new map to build new record. Record itself should be used instead
- Factory fn should not restrict definition of record/type with >20 fields (see here)
The semantics of the 1.3.0-alpha7 behavior should remain intact (save for bug fixes that open more functionality).
Added patch with fixes and tests.