from typing import Protocol, Awaitable, overload, Literal
class _AsyncMarker(Protocol):
_is_async: Literal[True]
class _SyncMarker(Protocol):
_is_async: Literal[False]
class KeyCommands:
"""Mixin providing key commands with sync/async overloads."""
@overload
def get(self: _SyncMarker, name: str) -> str | None: ... # FP: inconsistent-overload
@overload
def get(self: _AsyncMarker, name: str) -> Awaitable[str | None]: ... # FP
def get(self, name: str) -> str | None | Awaitable[str | None]:
return None
@overload
def set(self: _SyncMarker, name: str, value: str, ex: int | None = None) -> bool: ... # FP
@overload
def set(
self: _AsyncMarker, name: str, value: str, ex: int | None = None
) -> Awaitable[bool]: ... # FP
def set(self, name: str, value: str, ex: int | None = None) -> bool | Awaitable[bool]:
return True
No other type checker choose to error on this.
Describe the Bug
Minimal repro:
No other type checker choose to error on this.
Sandbox Link
https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeS4ATrgLYAEALqcROgOZ0Q3G6UN0AFag1wBjXFAA0dAIIB3VBAapssabgBuMSlFypM0gDJLtqKAB10l0VFRw4dAPoy4pdKICyqSgGttACiFcEXEoAEpESzpopwg4Rzs3UUQ6YwZTKABtABVKAFcYAF1rW3snAGUkr18AoJCJCKiYxziE13cUtIzMgDEzOCLLErsHAGkYUgBhWhoMTDhI9Bi6cxBV1Y8IfFY6YmoNCExWDj9SOnEaWawHOSUACzp20QB6RPc6TW1dfThCdbW1lYljEAAKfHR6TBNaKYGBgOhsGAMfwDKBgFKOSruap%2BSjSdCoGgwFJwBiUMJ0AC0AD5HmS6AAfOgAOVw6GJdEIXOiAGI6D0BClWOJ0HA4ul0AxKeDvlDgdEwVoIfpoXRYfDEcjUeinC4qt5cfjCRzSeSqbT5IplKoYJlTYyWWyiikuYRefyBKr1QikSiYGijUSSWSKTS6ZQHaz2Q7LUoVLA7fSmVHnarlpQkXlKEsU0N5XRFV9IV64Y9fdqMVjPAbtIGTWTpBozAVg3i6DB8ELJZGnXQALyO9mh2l4CQu7l0PkC1WF5Vy5begbItMxCu6p442t0AlB8ON5v1tsdrv8ZO9ge5-PD2QKOM2zKjqCFcduycekvwpd%2BgPb42t-dQC2e7tp2nDdme0YXk616PjGt7Wgmj7Piu0QZgwWZLLkBQgJIIB5Aw0C-GQFB8gAqgRUBKGcYB5O4BFsnAebemAvCzAwjjoHkNDYAEoGsAw16mos6aZtmdBgKszJcTxlApMA%2BAAL7rOgOEgGQGZgFApCECINBQCRgikBpWmPHMeD4OcbKQGwWaoPR6B-OgfLlDAMB0HcDAMMQCzPM86lwlphC8GwzwwOgzyYGIcDPCK1m2fZzzibwdCoE20Dxm5sUQDZlB2RAbIfMQ9m-JYZAMHcbKUkqYoFQOqwAMyEAAjAATMpIAKbhqCiARWg9NAMAUGgWDmSQ5AKUAA
(Only applicable for extension issues) IDE Information
No response