facebook / facebook/pyrefly

`invalid-type-var` does not replace pyright's `reportInvalidTypeVarUse` rule

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

Description

### Describe the Bug

according to the [error kind mapping for pyright](https://pyrefly.org/en/docs/migrating-from-pyright/#error-kind-mapping), `invalid-type-var` replaces `reportInvalidTypeVarUse` but that doesn't seem to be the case. [pyright reports errors in both of these cases](https://basedpyright.com/?pyrightVersion=1.39.5&typeCheckingMode=all&reportUnusedParameter=false&code=GYJw9gtgBALgngBwJYDsDmUkQWEMpgBuApiADZgCGAJgLABQD1xwUARpSANoAqAugApClMgFdiALig8AlFAC0APigA5MCklQAdDqgBiaYmIA1TlABEPc1EoIExTgGcCKMnBcBjYphRQ0xDRAkDyhgURQPGCR1KEckNBRKGFEQYgYGAAEiUgoaJhZQsDAhEXEpVBg5JVV1TR0tdPosknIqOnpmVmAi3kFhMU0eKABebR0q5R4pev1DeyhhIMo2Mm9LawhKdzQwKHDHMDISakxWDxFVkFjROzIkYmcUXc40UQgA-G6rhE5Kd5hSBZ%2BuJzI1OoVisDNGA2AArYiREY1DQTAhwhEwaY6IA), while pyrefly does not:

```python
from typing import overload

def bar[T](value: T) -> None: ... # pyright: TypeVar "T" appears only once in generic function signature

@overload
def foo(value: int) -> None: ...

@overload
def foo[T](value: T = ...) -> T: ... # pyright: Type variable "T" may go unsolved if caller supplies no argument for parameter "value"

def foo(value: object = None) -> object: ...
```

(these are two different issues though, so ideally they should be different rules anyway)

### Sandbox Link

https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeS4ATrgLYAEALqcROgOZ0Q3G6UN24AbjEpRcqTAB1Kk9NNmYYYOtlSUA2gBUAugApBqKAFcYiOpoCUdALQA%2BOgDlc6U3ULu6AYjrpcdEdQyMnLBAAJCImIS8lhKdGC4uPqGJmasDFZ2js6u7oQxMeHCouJSwYrKCbhaegbGrpp0ALxu7pn2mmZ5Xj5%2BAbwF5XFVyfVmuNgAVjAAxvwtTi7tAlOzDF3uIAA0IGSUSlCkhAy0UBTeAAqk%2B2CHdGhYePh0M86QbEaUqAwQzvno3gAyjAYHQABYMBjEOCIAD0sL2ByOvDYsJg6FhmFwMzgsNe6Hen2%2Bvwx8V4dFQBmgqGwsBebwgHy%2BP2cAmILPQcH%2BZAYYOc1mKcBJzTokhAAGZCABGABMYtk6n6lDg2lkRnQXB4fBgmGsmAg%2BzmEGEIoA5IzfPtTbJfAxrPsAI5GA066wAaxgpGsqBmM3gcDNAHc1OhrRruFAIDMIHaMKQzUqwzB8MRI9HY%2Bh4y1TYmQABfHY%2Bn7CABi0BgFAeOAIJHIeaAA

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