From 4224b93dccab41cf7541324864bc51e34e92cade Mon Sep 17 00:00:00 2001 From: byteforge38 Date: Wed, 14 Jan 2026 19:52:16 -0800 Subject: [PATCH] Fix crash when calling type[Any] from dict.get() --- mypy/test/testtypes.py | 9 +++++++++ mypy/types.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mypy/test/testtypes.py b/mypy/test/testtypes.py index f5f4c6797db2..dd37c7536cd6 100644 --- a/mypy/test/testtypes.py +++ b/mypy/test/testtypes.py @@ -674,6 +674,15 @@ def callable(self, vars: list[str], *a: Type) -> CallableType: variables=tv, ) + def test_is_type_obj_with_any_return(self) -> None: + # https://github.com/python/mypy/issues/20585 + c = CallableType([], [], [], self.fx.anyt, self.fx.type_type) + assert not c.is_type_obj() + + def test_is_type_obj_with_instance_return(self) -> None: + c = CallableType([], [], [], self.fx.a, self.fx.type_type) + assert c.is_type_obj() + class JoinSuite(Suite): def setUp(self) -> None: diff --git a/mypy/types.py b/mypy/types.py index 494d65cd00c3..9820730a4104 100644 --- a/mypy/types.py +++ b/mypy/types.py @@ -2331,7 +2331,7 @@ def is_kw_arg(self) -> bool: def is_type_obj(self) -> bool: return self.fallback.type.is_metaclass() and not isinstance( - get_proper_type(self.ret_type), UninhabitedType + get_proper_type(self.ret_type), (UninhabitedType, AnyType) ) def type_object(self) -> mypy.nodes.TypeInfo: