**Bug Report** Example ```python from typing import TypeGuard, reveal_type def is_int(obj: int | str) -> TypeGuard[int]: return isinstance(obj, int) def whats_this(obj: int | str) -> None: if is_int(obj): reveal_type(obj) else: reveal_type(obj) whats_this(1) # Revealed type is "builtins.int" whats_this("test") # Revealed type is "Union[builtins.int, builtins.str]" ``` **Expected Behavior** `whats_this("test")` should reveal "builtins.str". Note: This already works correctly for type narrowing expressions, i.e. when changing `if is_int(obj)` to `if isinstance(obj, int)`. **Actual Behavior** The type in the else branch is not narrowed. **Your Environment** - Mypy version used: 1.15.0 - Python version used: 3.12