a warning would be nice

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.