Dynamic class default (was Re: Class method addition...)

Peter Hall peter.hall at memorphic.com
Mon Apr 7 11:13:58 PDT 2008


I don't know if other languages have both dynamic and sealed classes
at once, but I have come across occasions in ActionScript where it can
cause a problem. The mutability of a dynamic class is seen as part of
its interface, and subclasses that are not dynamic will break code
that depends on it.

    dynamic class A { }
    class B extends A { }

    var a:A;
    a["some key"] = 1; // will throw an error if a is B


In AS3, "dynamic" is not inherited, but even if it was inherited there
would be a corresponding "sealed" keyword to prevent having to make a
special case of Object being dynamic but subclasses not, so there
would always be the possibility of this situation.


I feel there is a need for a way to declare that a variable must be of
a dynamic type. The best syntax I could envisage would be  for
"dynamic" to indicate a dynamic pseudo-type, when it is used in a type
expression. But it would be quite crippled without having intersection
types too.


One to come back to for ES5?

Peter



More information about the Es4-discuss mailing list