facebook / facebook/pyrefly

`divmod` does not work right

Open
#3,822 4 comments 1 reaction 1 assignee Claimed by @asukaminato0721 View on GitHub
overloads quansight typechecking
Dominant language
Rust
Stars
7k
Forks
516
PR merge metrics
No merged PRs in 30d

Description

### Describe the Bug

The issue is found in pandas-dev/pandas-stubs#1772. The examples are inspired by microsoft/pyright#10849 and in particular microsoft/pyright#10899.

`sandbox.py`:
```py
from typing import overload

class LHS:
@overload
def __divmod__(self, other: RHS) -> tuple[RHS, RHS]: ... # type: ignore[overload-overlap]
@overload
def __divmod__(self, other: object) -> tuple[LHS, LHS]: ...

class RHS:
pass
```

`ttest.pyi`:
```py
from typing import reveal_type
from sandbox import LHS

lhs = LHS()

reveal_type(divmod(lhs, 1)) # ERROR with pyrefly, works for mypy

```

Python: 3.12
mypy playground: https://mypy-play.net/?gist=38c79ab91908506693bb27a4135439b1

### Sandbox Link

https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeS4ATrgLYAEALqcROgOZ0Q3G6UN24AbjEpRcqTAB100gMZRUcOHQAyACQDKiaXV10AAkJFiJOvZhhg6AfWuYIgmrky2AFHBhQwAGgEMAFiKIdABKmgCUdAC0AHyMAK7EsADaYRq%2BaQC6wYS5ugDEjMwwwRBs6LwwyUai4phRNQrEmWa6hsK1puh6dBZWtvaOzm4eXr64AUEC2ABWMLIMkbEJSVXq6aqa2XS5hNJyCkqhmtrdesSKcNIg3iBklJZQpIQMtFAUhQAKpA9gT3RoLB4fB0WS4dCQNjxSioBgQcF7dCFDQwGB0fwMBjEOCIAD0uPuj2evDYuJg6FxmFwsjguLBELK0Nh8IpdDAvDoqEEqGgqGwsFB4MhTLh4IExFF6DgiLIAXBUQ6cBZdAAvHRJCAAMyEACMACYNddbpj4AwSKQIBQwNR6EwWOxONxePwHsJUFBrHaYJJKNJrbQARgcARHTw%2BJsND79r70FB-Mo1etXOEozIY66YO7PcVXIMnJhXHG4L4deEUzGQABfW6oBYOGAAMWgMAoJrgZrIlsrQA

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