ruff/crates
Dhruv Manilawala 097e703071
Consider unterminated f-strings in FStringRanges (#8154)
## Summary

This PR removes the `debug_assertion` in the `Indexer` to allow
unterminated f-strings. This is mainly a fix in the development build
which now matches the release build.

The fix is simple: remove the `debug_assertion` which means that the
there could be `FStringStart` and possibly `FStringMiddle` tokens
without a corresponding f-string range in the `Indexer`. This means that
the code requesting for the f-string index need to account for the
`None` case, making the code safer.

This also updates the code which queries the `FStringRanges` to account
for the `None` case. This will happen when the `FStringStart` /
`FStringMiddle` tokens are present but the `FStringEnd` token isn't
which means that the `Indexer` won't contain the range for that
f-string.

## Test Plan

`cargo test`

Taking the following code as an example:

```python
f"{123}
```

This only emits a `FStringStart` token, but no `FStringMiddle` or
`FStringEnd` tokens.

And,

```python
f"\.png${
```

This emits a `FStringStart` and `FStringMiddle` token, but no
`FStringEnd` token.

fixes: #8065
2023-10-27 11:11:44 +00:00
..
flake8_to_ruff Bump version to v0.1.3 (#8259) 2023-10-26 18:57:05 +00:00
ruff_benchmark Bump codspeed-criterion-compat from 2.2.0 to 2.3.0 (#8128) 2023-10-23 10:04:19 +01:00
ruff_cache Introduce FormatterSettings (#7545) 2023-09-21 08:01:24 +02:00
ruff_cli Bump version to v0.1.3 (#8259) 2023-10-26 18:57:05 +00:00
ruff_dev Add title attribute to icons (#8060) 2023-10-26 13:23:02 -04:00
ruff_diagnostics Add settings for promoting and demoting fixes (#7841) 2023-10-10 20:04:21 +00:00
ruff_formatter Rust 1.73 (#8007) 2023-10-23 02:12:25 +00:00
ruff_index
ruff_linter Consider unterminated f-strings in FStringRanges (#8154) 2023-10-27 11:11:44 +00:00
ruff_macros Add #[automatically_derived] to derived impls (#8080) 2023-10-20 00:12:27 +00:00
ruff_notebook Bump serde_with from 3.3.0 to 3.4.0 (#8130) 2023-10-23 09:05:52 +00:00
ruff_python_ast Remove leftover constant tuple reference (#8062) 2023-10-19 17:50:45 +00:00
ruff_python_codegen Add support for PEP 701 (#7376) 2023-09-29 02:55:39 +00:00
ruff_python_formatter Update black tests (#8278) 2023-10-27 10:44:19 +00:00
ruff_python_index Consider unterminated f-strings in FStringRanges (#8154) 2023-10-27 11:11:44 +00:00
ruff_python_literal Implement our own small-integer optimization (#7584) 2023-09-25 15:13:21 +00:00
ruff_python_parser perf(parser): use memchr for lexing comments (#8193) 2023-10-27 02:07:43 +01:00
ruff_python_resolver
ruff_python_semantic Rust 1.73 (#8007) 2023-10-23 02:12:25 +00:00
ruff_python_stdlib Improvements to RUF015 (#7848) 2023-10-08 14:49:45 +00:00
ruff_python_trivia Extend pragma comment cases (#7687) 2023-09-28 18:55:19 +00:00
ruff_shrinking Bump version to v0.1.3 (#8259) 2023-10-26 18:57:05 +00:00
ruff_source_file Add cell field to JSON output format (#7664) 2023-10-13 01:06:02 +00:00
ruff_text_size Unify line size settings between ruff and the formatter (#6873) 2023-08-28 06:44:56 +00:00
ruff_wasm Rename tab-size to indent-width (#8082) 2023-10-24 10:01:24 -04:00
ruff_workspace Refine the warnings about incompatible linter options (#8196) 2023-10-26 16:22:56 +00:00