<!-- 
RSS generated by JIRA (4.4#649-r158309) at Sat May 25 20:12:56 CDT 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://dev.clojure.org/jira/si/jira.issueviews:issue-xml/CLJ-438/CLJ-438.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Clojure JIRA</title>
    <link>http://dev.clojure.org/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>4.4</version>
        <build-number>649</build-number>
        <build-date>25-07-2011</build-date>
    </build-info>

<item>
            <title>[CLJ-438] case* and code walkers</title>
                <link>http://dev.clojure.org/jira/browse/CLJ-438</link>
                <project id="10010" key="CLJ">Clojure</project>
                        <description>&lt;p&gt;Clojure 1.2.0-master-SNAPSHOT&lt;br/&gt;
user=&amp;gt; (use &apos;clojure.walk)&lt;br/&gt;
nil&lt;br/&gt;
user=&amp;gt; (eval (macroexpand-all &apos;(case 1 1 :test)))&lt;br/&gt;
java.lang.ClassCastException: clojure.lang.PersistentVector cannot be cast to clojure.lang.MapEntry (NO_SOURCE_FILE:2)&lt;/p&gt;

&lt;p&gt;user=&amp;gt; (macroexpand-all &apos;(case 1 1 :test))&lt;br/&gt;
(let* &lt;span class=&quot;error&quot;&gt;&amp;#91;G__9 1&amp;#93;&lt;/span&gt;&lt;br/&gt;
(case*  G__9  0  1  1  1&lt;br/&gt;
  (throw   (new  java.lang.IllegalArgumentException  (clojure.core/str &quot;No matching clause: &quot; G__9)))&lt;/p&gt;
  {1 [1 :test]}
&lt;p&gt;  false))&lt;/p&gt;

&lt;p&gt;The existing code walkers convert the embedded &lt;span class=&quot;error&quot;&gt;&amp;#91;1 :test&amp;#93;&lt;/span&gt; into a PersistentVector that the compiler doesn&apos;t accept.&lt;br/&gt;
(symbol-macrolet &lt;span class=&quot;error&quot;&gt;&amp;#91;x :test&amp;#93;&lt;/span&gt; (case 1 1 x)) fails in the same way.&lt;/p&gt;</description>
                <environment></environment>
            <key id="13835">CLJ-438</key>
            <summary>case* and code walkers</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="1" iconUrl="http://dev.clojure.org/jira/images/icons/priority_blocker.gif">Blocker</priority>
                    <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="importer">Assembla Importer</reporter>
                        <labels>
                    </labels>
                <created>Thu, 23 Sep 2010 13:06:00 -0500</created>
                <updated>Fri, 13 Apr 2012 08:03:18 -0500</updated>
                    <resolved>Fri, 13 Apr 2012 08:03:18 -0500</resolved>
                                            <fixVersion>Backlog</fixVersion>
                                        <due></due>
                    <votes>1</votes>
                        <watches>2</watches>
                        <comments>
                    <comment id="24234" author="importer" created="Fri, 1 Oct 2010 10:47:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/438&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/438&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="26077" author="trptcolin" created="Sat, 1 Jan 2011 16:13:12 -0600"  >&lt;p&gt;A post-order traversal for macroexpand-all seems more reliable here than pre-order, and does fix the issue.&lt;/p&gt;

&lt;p&gt;The attached patch adds tests around this and updates macroexpand-all to use postwalk rather than prewalk. &lt;/p&gt;</comment>
                    <comment id="26249" author="ataggart" created="Mon, 28 Feb 2011 13:51:10 -0600"  >&lt;p&gt;This has been fixed in the patch on &lt;a href=&quot;http://dev.clojure.org/jira/browse/CLJ-426&quot; title=&quot;case should handle hash collision&quot;&gt;&lt;del&gt;CLJ-426&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The CaseExpr parser now just treats the map value as a tuple by calling RT.first/second, rather than casting it to a MapEntry.&lt;/p&gt;</comment>
                    <comment id="26920" author="trptcolin" created="Mon, 10 Oct 2011 09:28:35 -0500"  >&lt;p&gt;Confirming Alex&apos;s fix - this ticket can just get closed, I think.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10065" name="0001-Fix-error-case-in-eval-of-walk-macroexpand-all-outpu.patch" size="1571" author="trptcolin" created="Sat, 1 Jan 2011 16:13:12 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10003">Vetted</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>
</channel>
</rss>