mirror of https://github.com/astral-sh/ruff
## Summary
Support `as` patterns in reachability analysis:
```py
from typing import assert_never
def f(subject: str | int):
match subject:
case int() as x:
pass
case str():
pass
case _:
assert_never(subject) # would previously emit an error
```
Note that we still don't support inferring correct types for the bound
name (`x`).
Closes https://github.com/astral-sh/ty/issues/928
## Test Plan
New Markdown tests
|
||
|---|---|---|
| .. | ||
| if_expression.md | ||
| if_statement.md | ||
| match.md | ||