<!-- 
RSS generated by JIRA (4.4#649-r158309) at Sat May 18 01:52:33 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-907/CLJ-907.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-907] records do not enforce type hints</title>
                <link>http://dev.clojure.org/jira/browse/CLJ-907</link>
                <project id="10010" key="CLJ">Clojure</project>
                        <description>&lt;p&gt;Specify a record with a field as say ^String, but the constructor won&apos;t throw if you pass in a non-String.&lt;/p&gt;</description>
                <environment></environment>
            <key id="15102">CLJ-907</key>
            <summary>records do not enforce type hints</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="chip">Chip Salzenberg</reporter>
                        <labels>
                    </labels>
                <created>Sun, 8 Jan 2012 01:25:39 -0600</created>
                <updated>Fri, 1 Mar 2013 12:47:08 -0600</updated>
                    <resolved>Tue, 27 Nov 2012 13:52:24 -0600</resolved>
                            <version>Release 1.2</version>
                <version>Release 1.3</version>
                                                        <due></due>
                    <votes>1</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="27523" author="amalloy" created="Tue, 10 Jan 2012 16:59:53 -0600"  >&lt;p&gt;I doubt there&apos;s any desire to change this. Records only support typehints to enable performant storage of primitive types like ints, not to provide static typing in general. An Object is stored the same way as a String, so there&apos;s no need to pay attention to that typehint.&lt;/p&gt;

&lt;p&gt;Functions behave the same way: ((fn &lt;span class=&quot;error&quot;&gt;&amp;#91;^String x&amp;#93;&lt;/span&gt; x) :test) works just fine. Only if you use a member method of the hinted type (such as .substring in this example) is an exception thrown then the compiler casts to String in order to call the method.&lt;/p&gt;</comment>
                    <comment id="27524" author="chip" created="Tue, 10 Jan 2012 17:08:54 -0600"  >&lt;p&gt;I don&apos;t understand how you get from &quot;this is how it is&quot; to &quot;this is how it is meant to be.&quot;  The compiler can do a better job if the underlying field is properly typed: Type errors can be caught sooner, and cast operations can be omitted on use.  This is a worthy enhancement.&lt;/p&gt;</comment>
                    <comment id="30059" author="halgari" created="Tue, 27 Nov 2012 13:52:00 -0600"  >&lt;p&gt;Alan is correct, the reason type hints exist is to reduce reflection and to allow for the unboxing of primitives. String is not a primitive and therefore type-hinting it only reduces the amount of reflection performed. &lt;/p&gt;

&lt;p&gt;It has always been Rich&apos;s policy that any type systems used in Clojure should not throw compile time errors, but instead should only enhance the performance of existing code. (see the implementation of Typed Clojure for more info on this). &lt;/p&gt;

&lt;p&gt;Closing this issue, as it is by design.  &lt;/p&gt;

</comment>
                    <comment id="30060" author="halgari" created="Tue, 27 Nov 2012 13:52:24 -0600"  >&lt;p&gt;By design. &lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10008">Not Approved</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>