mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-10-31 12:05:57 +00:00 
			
		
		
		
	|  739c94f95a 
		
			Some checks are pending
		
		
	 CI / Determine changes (push) Waiting to run CI / cargo fmt (push) Waiting to run CI / cargo clippy (push) Blocked by required conditions CI / cargo test (linux) (push) Blocked by required conditions CI / cargo test (linux, release) (push) Blocked by required conditions CI / cargo test (windows) (push) Blocked by required conditions CI / cargo test (wasm) (push) Blocked by required conditions CI / cargo build (release) (push) Waiting to run CI / cargo build (msrv) (push) Blocked by required conditions CI / cargo fuzz build (push) Blocked by required conditions CI / fuzz parser (push) Blocked by required conditions CI / test scripts (push) Blocked by required conditions CI / ecosystem (push) Blocked by required conditions CI / Fuzz for new ty panics (push) Blocked by required conditions CI / cargo shear (push) Blocked by required conditions CI / python package (push) Waiting to run CI / pre-commit (push) Waiting to run CI / mkdocs (push) Waiting to run CI / formatter instabilities and black similarity (push) Blocked by required conditions CI / test ruff-lsp (push) Blocked by required conditions CI / check playground (push) Blocked by required conditions CI / benchmarks-instrumented (push) Blocked by required conditions CI / benchmarks-walltime (push) Blocked by required conditions [ty Playground] Release / publish (push) Waiting to run ## 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 | ||