ruff/crates
Micha Reiser 1559c73fcd
Fix fstring formatting removing overlong implicit concatenated string in expression part (#14811)
## Summary

Fixes https://github.com/astral-sh/ruff/issues/14778


The formatter incorrectly removed the inner implicitly concatenated
string for following single-line f-string:

```py
f"{'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' 'a' if True else ""}"

# formatted
f"{ if True else ''}"
```

This happened because I changed the `RemoveSoftlinesBuffer` in
https://github.com/astral-sh/ruff/pull/14489 to remove any content
wrapped in `if_group_breaks`. After all, it emulates an *all flat*
layout. This works fine when `if_group_breaks` is only used to **add**
content if the gorup breaks. It doesn't work if the same content is
rendered differently depending on if the group fits using
`if_group_breaks` and `if_groups_fits` because the enclosing `group`
might still *break* if the entire content exceeds the line-length limit.

This PR fixes this by unwrapping any `if_group_fits` content by removing
the `if_group_fits` start and end tags.


## Test Plan

added test
2024-12-06 13:01:04 +01:00
..
red_knot Possible fix for flaky file watching test (#14543) 2024-12-03 08:22:42 +01:00
red_knot_python_semantic Migrate some inference tests to mdtests (#14795) 2024-12-06 11:19:22 +01:00
red_knot_server Upgrade Rust toolchain to 1.83 (#14677) 2024-11-29 12:05:05 +00:00
red_knot_test [red-knot] Support for TOML configs in Markdown tests (#14785) 2024-12-06 10:22:08 +01:00
red_knot_vendored Sync vendored typeshed stubs (#14696) 2024-12-01 01:38:31 +00:00
red_knot_wasm Add tests for python version compatibility (#14430) 2024-11-18 12:26:55 +00:00
red_knot_workspace Possible fix for flaky file watching test (#14543) 2024-12-03 08:22:42 +01:00
ruff Fix infinite watch loop by ignoring 'uninteresting' watch events (#14809) 2024-12-06 08:50:29 +00:00
ruff_benchmark Fix Red Knot benchmarks on Windows (#14400) 2024-11-17 16:21:09 +00:00
ruff_cache
ruff_db Upgrade Rust toolchain to 1.83 (#14677) 2024-11-29 12:05:05 +00:00
ruff_dev Alternate quotes for strings inside f-strings in preview (#13860) 2024-10-23 07:57:53 +02:00
ruff_diagnostics Upgrade Rust toolchain to 1.83 (#14677) 2024-11-29 12:05:05 +00:00
ruff_formatter Fix fstring formatting removing overlong implicit concatenated string in expression part (#14811) 2024-12-06 13:01:04 +01:00
ruff_graph Bump MSRV to Rust 1.80 (#13826) 2024-10-20 10:55:36 +02:00
ruff_index
ruff_linter [airflow]: extend removed names (AIR302) (#14804) 2024-12-06 11:34:48 +01:00
ruff_macros Use a derive macro for Violations (#14557) 2024-11-27 09:41:40 +00:00
ruff_notebook Bump MSRV to Rust 1.80 (#13826) 2024-10-20 10:55:36 +02:00
ruff_python_ast [ruff] Unnecessary cast to int (RUF046) (#14697) 2024-12-05 10:30:06 +01:00
ruff_python_ast_integration_tests Update insta snapshots (#14366) 2024-11-15 19:31:15 +01:00
ruff_python_codegen Extract LineIndex independent methods from Locator (#13938) 2024-10-28 07:53:41 +00:00
ruff_python_formatter Fix fstring formatting removing overlong implicit concatenated string in expression part (#14811) 2024-12-06 13:01:04 +01: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 Upgrade Rust toolchain to 1.83 (#14677) 2024-11-29 12:05:05 +00:00
ruff_python_resolver Update insta snapshots (#14366) 2024-11-15 19:31:15 +01:00
ruff_python_semantic [ruff] Implemented used-dummy-variable (RUF052) (#14611) 2024-12-03 08:36:16 +01:00
ruff_python_stdlib [ruff] Implemented used-dummy-variable (RUF052) (#14611) 2024-12-03 08:36:16 +01:00
ruff_python_trivia Extract LineIndex independent methods from Locator (#13938) 2024-10-28 07:53:41 +00:00
ruff_python_trivia_integration_tests Update insta snapshots (#14366) 2024-11-15 19:31:15 +01:00
ruff_server Upgrade Rust toolchain to 1.83 (#14677) 2024-11-29 12:05:05 +00:00
ruff_source_file Extract LineIndex independent methods from Locator (#13938) 2024-10-28 07:53:41 +00:00
ruff_text_size Extract LineIndex independent methods from Locator (#13938) 2024-10-28 07:53:41 +00:00
ruff_wasm Bump version to 0.8.2 (#14789) 2024-12-05 18:06:35 +05:30
ruff_workspace [flake8-import-conventions] Improve syntax check for aliases supplied in configuration for unconventional-import-alias (ICN001) (#14745) 2024-12-02 22:41:47 -06:00