<div><span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; ">Change 20080310-dda-1 by <a href="mailto:dda@lester.local">dda@lester.local</a> on 2008-03-10 09:47:18 EDT</span><br></div><div><span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
&nbsp; &nbsp;&nbsp;in /Users/dda/laszlo/src/svn/openlaszlo/branches/devildog</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;for <a href="http://svn.openlaszlo.org/openlaszlo/branches/devildog">http://svn.openlaszlo.org/openlaszlo/branches/devildog</a></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Summary: SWF9: Create constructors for interstitial classes</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">New Features:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ">
<br></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Bugs Fixed:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Technical Reviewer: ptw (pending)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">QA Reviewer: promanik (pending)</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Doc Reviewer: (pending)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br>
</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Documentation:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
Release Notes:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Details:</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;The use of mixins cause &#39;interstitial&#39; classes to be created to</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
&nbsp; &nbsp;&nbsp;simulate the mixin.&nbsp;&nbsp;These classes sit in the inheritence tree</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;between the class that uses the mixin and the &#39;real&#39; super class.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;If the super class has a constructor with &gt;0 args, and the mixin</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
&nbsp; &nbsp;&nbsp;does not declare a constructor, then there will be compilation errors.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;This change automatically creates a constructor with the right</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;number of args, etc. when there is not one in the mixin.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ">
<br></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;If a mixin declares a constructor, it is obligated to call super</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
&nbsp; &nbsp;&nbsp;with a compatible arg list for any super class it might be used with.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
&nbsp; &nbsp;&nbsp;Also this change fixes a blemish with multiple mixins.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp;&nbsp; &nbsp;&nbsp;class C1 with M1,M2 extends S1</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
&nbsp; &nbsp;&nbsp;used to create an interstitial named &#39;lzsc$mixin$M1$lzsc$mixin$M2$S1&#39;,</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;now it creates the more compact, and originally intended name:</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;&#39;lzsc$mixin$M1$M2$S1&#39;.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ">
<br></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Tests:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;Regression: henry&#39;s hello (SWF9) + smokecheck(SWF8,DHTML)</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">&nbsp; &nbsp;&nbsp;Functionality: Temporarily inserted a sample set of mixins, superclasses and classes</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
&nbsp; &nbsp;&nbsp;that use them into LzNode.js and made sure generated code was correct and compiled.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
Files:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">M&nbsp; &nbsp; &nbsp;&nbsp;WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; ">
<br></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Changeset: <a href="http://svn.openlaszlo.org/openlaszlo/patches/20080310-dda-1.tar">http://svn.openlaszlo.org/openlaszlo/patches/20080310-dda-1.tar</a></p>
<br><br><div id="AppleMailSignature"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br class="Apple-interchange-newline">--</div><div><br class="webkit-block-placeholder">
</div><div>Don Anderson</div><div>Java/C/C++, Berkeley DB, systems consultant</div><div><br class="webkit-block-placeholder"></div><div>voice: 617-547-7881</div><div>email:&nbsp;<a href="mailto:dda@ddanderson.com">dda@ddanderson.com</a></div>
<div>www: <a href="http://www.ddanderson.com">http://www.ddanderson.com</a></div><div><br class="webkit-block-placeholder"></div></div><br class="Apple-interchange-newline"></div></span></div>