Fix syntax error false positive on nested alternative patterns (#21104)

## Summary

Fixes #21101 by storing the child visitor's names in the parent visitor.
This makes sure that `visitor.names` on line 1818 isn't empty after we
visit a nested OR pattern.

## Test Plan

New inline test cases derived from the issue,
[playground](https://play.ruff.rs/7b6439ac-ee8f-4593-9a3e-c2aa34a595d0)
This commit is contained in:
Brent Westbrook 2025-10-30 13:40:03 -04:00 committed by GitHub
parent 10bda3df00
commit f0fe6d62fb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 512 additions and 0 deletions

View file

@ -0,0 +1,7 @@
match ruff:
case {"lint": {"select": x} | {"extend-select": x}} | {"select": x}:
...
match 42:
case [[x] | [x]] | x: ...
match 42:
case [[x | x] | [x]] | x: ...