ruff/crates
Alex Waygood f85ea1bf46
[red-knot] Ensure differently ordered unions and intersections are understood as equivalent even inside arbitrarily nested tuples (#15740)
## Summary

On `main`, red-knot:
- Considers `P | Q` equivalent to `Q | P`
- Considered `tuple[P | Q]` equivalent to `tuple[Q | P]`
- Considers `tuple[P | tuple[P | Q]]` equivalent to `tuple[tuple[Q | P]
| P]`
- ‼️ Does _not_ consider `tuple[tuple[P | Q]]` equivalent to
`tuple[tuple[Q | P]]`

The key difference for the last one of these is that the union appears
inside a tuple that is directly nested inside another tuple.

This PR fixes this so that differently ordered unions are considered
equivalent even when they appear inside arbitrarily nested tuple types.

## Test Plan

- Added mdtests that fails on `main`
- Checked that all property tests continue to pass with this PR
2025-01-25 16:39:07 +00:00
..
red_knot Improve the file watching failure error message (#15728) 2025-01-24 15:28:30 -06:00
red_knot_project [red-knot] Add --ignore, --warn, and --error CLI arguments (#15689) 2025-01-24 16:20:15 +01:00
red_knot_python_semantic [red-knot] Ensure differently ordered unions and intersections are understood as equivalent even inside arbitrarily nested tuples (#15740) 2025-01-25 16:39:07 +00:00
red_knot_server [red-knot] Make Diagnostic::file optional (#15640) 2025-01-23 10:43:14 +01:00
red_knot_test [red-knot] Support custom typeshed Markdown tests (#15683) 2025-01-23 12:36:38 +01:00
red_knot_vendored [red-knot] Migrate is_gradual_equivalent_to unit tests to Markdown tests (#15563) 2025-01-17 16:48:01 -08:00
red_knot_wasm Create Unknown rule diagnostics with a source range (#15648) 2025-01-23 12:50:43 +01:00
ruff Bump version to 0.9.3 (#15698) 2025-01-23 12:43:56 -06:00
ruff_annotate_snippets ruff_annotate_snippets: support overriding the "cut indicator" 2025-01-15 13:37:52 -05:00
ruff_benchmark [red-knot] Use Unknown | T_inferred for undeclared public symbols (#15674) 2025-01-24 12:47:48 +01:00
ruff_cache
ruff_db [red-knot] Add --ignore, --warn, and --error CLI arguments (#15689) 2025-01-24 16:20:15 +01:00
ruff_dev Alternate quotes for strings inside f-strings in preview (#13860) 2024-10-23 07:57:53 +02:00
ruff_diagnostics Show errors for attempted fixes only when passed --verbose (#15237) 2025-01-03 08:50:13 -06:00
ruff_formatter Upgrade Rust toolchain to 1.84.0 (#15408) 2025-01-11 09:51:58 +01:00
ruff_graph Add support for configuring knot in pyproject.toml files (#15493) 2025-01-17 09:41:06 +01:00
ruff_index [red-knot] small efficiency improvements and bugfixes to use-def map building (#12373) 2024-07-18 09:24:58 -07:00
ruff_linter [pylint] Do not trigger PLR6201 on empty collections (#15732) 2025-01-24 20:42:49 -06:00
ruff_macros Flatten red_knot_project import paths (#15616) 2025-01-20 14:57:57 +01:00
ruff_notebook Bump MSRV to Rust 1.80 (#13826) 2024-10-20 10:55:36 +02:00
ruff_python_ast Preserve raw string prefix and escapes (#15694) 2025-01-23 12:12:10 -05:00
ruff_python_ast_integration_tests Update insta snapshots (#14366) 2024-11-15 19:31:15 +01:00
ruff_python_codegen Preserve raw string prefix and escapes (#15694) 2025-01-23 12:12:10 -05:00
ruff_python_formatter Remove customizable reference enum names (#15647) 2025-01-21 13:46:31 -05:00
ruff_python_index Extract LineIndex independent methods from Locator (#13938) 2024-10-28 07:53:41 +00:00
ruff_python_literal Upgrade Rust toolchain to 1.83 (#14677) 2024-11-29 12:05:05 +00:00
ruff_python_parser Parse triple quoted string annotations as if parenthesized (#15387) 2025-01-16 11:38:15 +05:30
ruff_python_resolver Update insta snapshots (#14366) 2024-11-15 19:31:15 +01:00
ruff_python_semantic Remove customizable reference enum names (#15647) 2025-01-21 13:46:31 -05:00
ruff_python_stdlib Revert "Add all PEP-585 names to UP006 rule" (#15250) 2025-01-04 12:23:53 +01:00
ruff_python_trivia type: ignore[codes] and knot: ignore (#15078) 2024-12-23 10:52:43 +01:00
ruff_python_trivia_integration_tests Update insta snapshots (#14366) 2024-11-15 19:31:15 +01:00
ruff_server Consider unsafe-fixes settings for code actions (#15666) 2025-01-22 13:44:13 +05:30
ruff_source_file [pyupgrade] Do not report when a UTF-8 comment is followed by a non-UTF-8 one (UP009) (#14728) 2024-12-11 10:30:41 +00:00
ruff_text_size [ruff] itertools.starmap(..., zip(...)) (RUF058) (#15483) 2025-01-16 15:18:12 +01:00
ruff_wasm Bump version to 0.9.3 (#15698) 2025-01-23 12:43:56 -06:00
ruff_workspace [pydoclint] Allow ignoring one line docstrings for DOC rules (#13302) 2025-01-16 16:05:10 -06:00