facebook / facebook/pyrefly

support multi-step bidirectional type inference

Open
#1,135 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.