<< Back to previous view

[MATCH-92] Map matching is broken for keywords with periods Created: 13/Jan/14  Updated: 14/Jan/14  Resolved: 14/Jan/14

Status: Closed
Project: core.match
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Critical
Reporter: Luke VanderHart Assignee: David Nolen
Resolution: Completed Votes: 0
Labels: None
Environment:

Clojure 1.6 alpha


Attachments: Text File 0001-test-and-fix-for-MATCH-92.patch    
Patch: Code and Test

 Description   

The compilation generates invalid code in the case where a map keyword contains a period (which is a legal character for a keyword).

 
(match {:a.b 1}
   {:a.b _} :foo)
;; CompilerException java.lang.ClassFormatError: Illegal field name "ocr_5762_0__5765_a.b__5768"

Among other things, this precludes the use of core.match on Datomic data.



 Comments   
Comment by David Nolen [ 13/Jan/14 1:54 PM ]

Thanks for the report seems simple to fix.

Comment by Luke VanderHart [ 13/Jan/14 1:57 PM ]

Awesome. Are you looking at it right now? Otherwise I might dig into the code myself since this is blocking me at the moment.

Comment by Luke VanderHart [ 13/Jan/14 2:14 PM ]

Uploaded patch

Comment by David Nolen [ 13/Jan/14 2:34 PM ]

Patch looks good to me. Thanks! I will apply later today and cut another release.

Comment by David Nolen [ 14/Jan/14 8:29 AM ]

fixed, https://github.com/clojure/core.match/commit/eee5c814ce3e8256b0450cbeafb7f917418ebeaf

Generated at Thu Aug 21 19:01:26 CDT 2014 using JIRA 4.4#649-r158309.