when use a null literal to initialize an entity with no type annotation, it produce a wrong type for the entity.
### 期望行为是什么?
spec 4.7.4 pointed that: `If the initializer expression is the null literal, then the type is Object | null.` so the entity x in the xxx.ets file below should have type Object | null, not null:
```
let x = null
```
### 如何复现该缺陷
```
let x = null; // inferred Object|null
function main(): void {
x = new Error();
assert x instanceof Error;
x = null;
assert x == null;
x = new Object();
assert x instanceof Object;
x = new string[1];
(x as string[])[0] = "abc";
assert (x as string[])[0] == "abc";
}
```
```
TypeError: Type 'Error' cannot be assigned to type 'null'
```
### 其他补充信息
### 版本或分支信息
- [x] master
- [ ] Release 4.1
- [ ] Release 4.0
- [ ] Release 3.2
新值
### 发生了什么问题?
when use a null literal to initialize an entity with no type annotation, it produce a wrong type for the entity.
### 期望行为是什么?
spec 4.7.4 pointed that: `If the initializer expression is the null literal, then the type is Object | null.` so the entity x in the xxx.ets file below should have type Object | null, not null:
```
let x = null
```
### 如何复现该缺陷
```
let x = null; // inferred Object|null
function main(): void {
x = new Error();
assert x instanceof Error;
x = null;
assert x == null;
x = new Object();
assert x instanceof Object;
x = new string[1];
(x as string[])[0] = "abc";
assert (x as string[])[0] == "abc";
}
```
```
TypeError: Type 'Error' cannot be assigned to type 'null'