support multi-step bidirectional type inference
Open
contextual-typing
typechecking
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 516
- PR merge metrics
- No merged PRs in 30d
Description
### Describe the Bug
```py
def f1() -> list[object]:
return [1, 2, 3] # lovely, bidirectional type inference uses the return type to infer `list[object]`
def f2() -> list[object]:
result = [1, 2, 3]
return result # error: bi-directional type inference does not look ahead, so the inferred type is `list[int]`
```
### Sandbox Link
_No response_
### (Only applicable for extension issues) IDE Information
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.