infer types of empty literals from left-hand-side expressions

A small patch to enhance assignment expression's analysis.
```
class _Main {
	static function main (args : string[]) : void {
		var a : A[] = [];
		var b : Map.<A> = {};
	}
}
```