diff --git a/mypy/checkexpr.py b/mypy/checkexpr.py index 420cfd990820c..4d04390da84a9 100644 --- a/mypy/checkexpr.py +++ b/mypy/checkexpr.py @@ -4271,6 +4271,9 @@ def visit_assert_type_expr(self, expr: AssertTypeExpr) -> Type: allow_none_return=True, always_allow_any=True, ) + if self.chk.current_node_deferred: + return source_type + target_type = expr.type proper_source_type = get_proper_type(source_type) if ( diff --git a/test-data/unit/check-expressions.test b/test-data/unit/check-expressions.test index 40ee28830b21a..f3306deafbbc3 100644 --- a/test-data/unit/check-expressions.test +++ b/test-data/unit/check-expressions.test @@ -1045,6 +1045,23 @@ def reduce_it(s: Scalar) -> Scalar: assert_type(reduce_it(True), Scalar) [builtins fixtures/tuple.pyi] +[case testAssertTypeWithDeferedNodes] +from typing import Callable, TypeVar, assert_type + +T = TypeVar("T") + +def dec(f: Callable[[], T]) -> Callable[[], T]: + return f + +def method1() -> None: + some_enum = _inner_method1() + assert_type(some_enum, int) + +@dec +def _inner_method1() -> int: + return 1 +[builtins fixtures/tuple.pyi] + -- None return type -- ----------------