<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; ">
in /Users/dda/laszlo/src/svn/openlaszlo/branches/devildog</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> 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; "> The use of mixins cause 'interstitial' classes to be created to</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
simulate the mixin. These classes sit in the inheritence tree</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> between the class that uses the mixin and the 'real' super class.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> If the super class has a constructor with >0 args, and the mixin</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
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; "> This change automatically creates a constructor with the right</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> 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; "> 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; ">
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; ">
Also this change fixes a blemish with multiple mixins.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> class C1 with M1,M2 extends S1</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">
used to create an interstitial named 'lzsc$mixin$M1$lzsc$mixin$M2$S1',</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> 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; "> 'lzsc$mixin$M1$M2$S1'.</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; "> Regression: henry's hello (SWF9) + smokecheck(SWF8,DHTML)</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> 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; ">
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 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: <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>