facebook / facebook/pyrefly

preserve `Literal` through generic function calls

Open
#1,138 7 comments 0 reactions 0 assignees View on GitHub
needs-discussion typechecking
Dominant language
Rust
Stars
7k
Forks
516
PR merge metrics
No merged PRs in 30d

Description

### Describe the Bug

```py
def f[T](t: T) -> T:
return t

reveal_type(1) # Literal[1]
a = 1
reveal_type(a) # Literal[1]
reveal_type(f(a)) # int, expect Literal[1]
reveal_type(f(1)) # int, expect Literal[1]
```

### 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.