from typing import Callable, Any
class Cat:
def equals(self, other: Any) -> bool:
return False
def main(f: Callable[[], Cat]) -> None:
while (a := f()).equals(1):
break
print(a)
main(lambda: Cat())
(scratch) mgorelli@marcoslaptop:~/scratch$ pyright t.py
0 errors, 0 warnings, 0 informations
(scratch) mgorelli@marcoslaptop:~/scratch$ ty check t.py
All checks passed!
(scratch) mgorelli@marcoslaptop:~/scratch$ pyrefly check t.py
ERROR `a` may be uninitialized [unbound-name]
--> t.py:11:11
|
11 | print(a)
| ^
|
INFO 1 error
Describe the Bug
Sandbox Link
https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeS4ATrgLYAEALqcROgOZ0Q3G6UN0BhVFCipssADR0AgulIAddIoDGouHEGoGiRXT11MMMHRgBHAK7C4ACjgwoYKbgYALGJUQy5ASjoBaAD46PFwoHXR9SLpKGAZzSgiAMSsYRUVDYxpUVmswTyERMVgAbWKAXSkhBjLfQLoAOVx0GHDIgHcXaBg6a1Q6RABeOjBrb29CM0soGwBGb1aovWwY1ABrNIj9YkpWBl7vDayc0RpsTFR8rVGD9BAJEDIYsChSQgZaKAoAYjoABVIni86GgsHh8HRlE1IGx4loIE1CIofgBlGDdFwMBjEOCIAD0uMeRhehF4bFxMHQuMwuGUcFxkPQ0NhDHhlOGvDoqAAbtlROJugymZQ4U06LhiCymnBEegyK4mn4ue44Ky6EN5CAAMyEGYAJg1imK7molDgZUU5nQXB4fBgmD8mAgMWULKVaroAHIIGx0LwYB7FL6GH4YhYnXa-KsYKQ-KhlMp4Bohh62qgEgHbgBfe5x10wRJdCggnAEEjkTNAA
(Only applicable for extension issues) IDE Information
No response