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
|
||
|---|---|---|
| .. | ||
| basic.md | ||
| builtins.md | ||
| case_sensitive.md | ||
| conditional.md | ||
| conflicts.md | ||
| conventions.md | ||
| cyclic.md | ||
| dunder_all.md | ||
| errors.md | ||
| invalid_syntax.md | ||
| namespace.md | ||
| relative.md | ||
| site_packages_discovery.md | ||
| star.md | ||
| stub_packages.md | ||
| stubs.md | ||
| tracking.md | ||