Ok, we see why this is screwing up.  The nodeType slot is effectively  
an 'abstract var', declared in the superclass and expected to be  
overridden in the subclass, and then we are being _really_ tricky and  
doing the overriding in the trait.

Sadly, this is a pretty decent example of why some people believe it  
is too confusing to allow implementation in interfaces.

I think the most O-O way to fix this would be for LzDataNode to  
declare nodeType (with no initial value), and for the concrete  
subclasses to set the nodeType to the appropriate value in the  
initialize function (or set it on the prototype in the static  
initilize function).

Probably as part of implementing the override keyword, we should  
implement the abstract keyword too, so we could use `abstract var` to  
mean sublcass must initialize.


On 2006-09-19, at 09:26 EDT, Philip Romanik wrote:

> I'll confer with Tucker, and then check in a change, but the following
> change appears to work.
>
>
> Change this line in LzDataElement.lzs from
>
>
>         nodeType = LzDataNode.ELEMENT_NODE;
>
>
> to
>
>
>         var nodeType = LzDataNode.ELEMENT_NODE;
>
>
>
> Phil
>
> _______________________________________________
> Laszlo-dev mailing list
> [email protected]
> http://www.openlaszlo.org/mailman/listinfo/laszlo-dev


_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev

Reply via email to