ruff/crates/ruff_linter
Dhruv Manilawala 99c400000a
Avoid owned token data in sequence sorting (#11533)
## Summary

This PR updates the sequence sorting (`RUF022` and `RUF023`) to avoid
using the owned data from the string token. Instead, we will directly
use the reference to the data on the AST. This does introduce a lot of
lifetimes but that's required.

The main motivation for this is to allow removing the `lex_starts_at`
usage easily.

### Alternatives

1. Extract the raw string content (stripping the prefix and quotes)
using the `Locator` and use that for comparison
2. Build up an
[`IndexVec`](3e30962077/crates/ruff_index/src/vec.rs)
and use the newtype index in place of the string value itself. This also
does require lifetimes so we might as well just use the method in this
PR.

## Test Plan

`cargo insta test` and no ecosystem changes
2024-05-26 20:20:20 -04:00
..
resources [`pyupgrade`] Support `TypeAliasType` in `UP040` (#11530) 2024-05-26 19:05:35 +00:00
src Avoid owned token data in sequence sorting (#11533) 2024-05-26 20:20:20 -04:00
Cargo.toml Bump version to `v0.4.5` (#11502) 2024-05-23 01:09:01 +00:00
__init__.py [`pylint`] (Re-)Implement `import-private-name` (`C2701`) (#9553) 2024-01-16 14:03:11 -05:00