[red-knot] Ensure differently ordered unions are considered equivalent when they appear inside tuples inside top-level intersections (#15743)

This commit is contained in:
Alex Waygood
2025-01-25 18:19:28 +00:00
committed by GitHub
parent f85ea1bf46
commit c824140fa8
2 changed files with 34 additions and 4 deletions

View File

@@ -106,4 +106,16 @@ static_assert(
)
```
## Intersections containing tuples containing unions
```py
from knot_extensions import is_equivalent_to, static_assert, Intersection
class P: ...
class Q: ...
class R: ...
static_assert(is_equivalent_to(Intersection[tuple[P | Q], R], Intersection[tuple[Q | P], R]))
```
[the equivalence relation]: https://typing.readthedocs.io/en/latest/spec/glossary.html#term-equivalent