a warning would be nice March 17


package
{
    import flash.display.Sprite;

    public class Foo extends Sprite {
        public var bar:Object;
        
        public function Foo() {
            bar = 5;
            baz();
        }
        
        public function baz():void {
            var bar:String = "not 5";
            trace(bar);
        }
        
    }
}

What do you think the output is? "not 5", as would be expected. But if you are stupid enough to do something like this (I was, after some refactoring), I would expect the compiler to at least throw a warning. Nope!

Also this is interesting:


        public function baz2():void {
            bar = 2;
            var bar:String = "not 2";
            trace(bar);
        }

does in fact throw this warning:


/Users/greay/projs/Test/Foo.as(19): col: 10 Error: Implicit coercion of a value of type int to an unrelated type String.