Should we just make all LZX methods public?

I don't think we want to burden the LZX programmer with this issue.

The other alternative is to shove toString into the prototype. What AS3 does, for back-compatibility is put toString on Object.prototype. You can override that in your class by defining your own toString on your class prototype, but then you can't make super calls. If a class has a public toString method, AS3 will call that in preference to the Object.prototype function. But it has to be public. If you don't declare it public, you can call it directly in your code but `String(foo)` and `'' + foo` will not.

On 2008-05-03, at 21:18 EDT, Henry Minsky wrote:

lzpix is getting a similar issue when I try to compile it in swf9

org.openlaszlo.sc.CompilerError: line 107: Error: Incompatible override, in
line: override function toString () {
line 243: Error: Incompatible override, in line: override function toString
() {
line 126: Error: Incompatible override, in line: override function toString
() {


On Fri, May 2, 2008 at 11:40 PM, P T Withington <[EMAIL PROTECTED]> wrote:

The override us automatic, I think it is the public that is screwing the test case. If toString is not public it won't be invoked by implicit string conversions. So I declared it public in my patch that Max was testing. But the test must override but not declare public. I'm pretty sure that is the
conflict.


On May 2, 2008, at 21:55, "Henry Minsky" <[EMAIL PROTECTED]>
wrote:

Aren't the override keywords supposed to be inserted automatically ?
Do we need to declare toString on something in the lfc.lzx schema file so
that the compiler
knows to insert an override?

On Fri, May 2, 2008 at 5:18 PM, P T Withington < <[EMAIL PROTECTED]>
[EMAIL PROTECTED]> wrote:

Well toString has to be a public override for it to work, so, I think
the example will have to be updated.


On May 2, 2008, at 14:09, Max Carlson < <[EMAIL PROTECTED]>
[EMAIL PROTECTED]> wrote:

Your example works, but
<http://localhost:8080/trunk/examples/modeexample.lzx?lzr=swf9>
http://localhost:8080/trunk/examples/modeexample.lzx?lzr=swf9 now
gives a compiler error:
org.openlaszlo.sc.CompilerError: line 366: Error: Incompatible
override, in line: override function toString () {

P T Withington wrote:

Change 20080502-ptw-H by [EMAIL PROTECTED] on 2008-05-02
06:48:32 EDT
 in /Users/ptw/OpenLaszlo/ringding-2/WEB-INF/lps/lfc
 for <http://svn.openlaszlo.org/openlaszlo/trunk/WEB-INF/lps/lfc>
http://svn.openlaszlo.org/openlaszlo/trunk/WEB-INF/lps/lfc
Summary: Make handler trampoline work in swf9
Bugs Fixed:
LPP-5818 'Warn when methods registered for events aren't expecting
exactly one argument from sendEvent()'
Technical Reviewer: hminsky (pending)
QA Reviewer: max (pending)
Details:
 LzFormattter: Type and default args for swf9, work around switch
 verifier error (must have break on final case).
 *: toString must be public to have it seen by string coercion
Tests:
 This now runs in swf9, demonstrating that the wrapper to handle
 the missing argument is being installed.
 <canvas>
   <simplelayout />
   <text name="output" clickable="true" text="Click Me!"/>
   <method name="handleMe">
     output.format("Clicked!");
   </method>
   <handler name="onclick" reference="output" method="handleMe" />
 </canvas>
Files:
M      kernel/swf/LzLibrary.lzs
M      kernel/dhtml/LzLibrary.js
M      services/LzURL.js
M      services/LzIdle.lzs
M      debugger/LzMemory.lzs
M      core/LzMiniNode.lzs
M      core/LzNode.lzs
M      views/LzText.lzs
M      views/LaszloCanvas.lzs
M      helpers/LzFont.lzs
M      helpers/LzSelectionManager.lzs
M      events/LaszloEvents.lzs
M      controllers/LzAnimatorGroup.lzs
M      controllers/LaszloLayout.lzs
M      controllers/LaszloAnimation.lzs
M      data/LzLazyReplicationManager.lzs
M      data/LzReplicationManager.lzs
M      data/LzDatapointer.lzs
M      data/LzDataText.lzs
M      data/LzDataElement.lzs
M      data/LzDataset.lzs
M      data/LzDatapath.lzs
M      data/LzResizeReplicationManager.lzs
M      data/LzParsedPath.lzs
M      data/LzParam.lzs
M      data/LzDataAttrBind.lzs
M      compiler/LzFormatter.lzs
Changeset:
<http://svn.openlaszlo.org/openlaszlo/patches/20080502-ptw-H.tar>
http://svn.openlaszlo.org/openlaszlo/patches/20080502-ptw-H.tar


--
Regards,
Max Carlson
OpenLaszlo.org




--
Henry Minsky
Software Architect
<[EMAIL PROTECTED]>[EMAIL PROTECTED]




--
Henry Minsky
Software Architect
[EMAIL PROTECTED]

Reply via email to