mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-03 18:28:24 +00:00
![]() ## Summary This PR removes the cyclic dev dependency some of the crates had with the parser crate. The cyclic dependencies are: * `ruff_python_ast` has a **dev dependency** on `ruff_python_parser` and `ruff_python_parser` directly depends on `ruff_python_ast` * `ruff_python_trivia` has a **dev dependency** on `ruff_python_parser` and `ruff_python_parser` has an indirect dependency on `ruff_python_trivia` (`ruff_python_parser` - `ruff_python_ast` - `ruff_python_trivia`) Specifically, this PR does the following: * Introduce two new crates * `ruff_python_ast_integration_tests` and move the tests from the `ruff_python_ast` crate which uses the parser in this crate * `ruff_python_trivia_integration_tests` and move the tests from the `ruff_python_trivia` crate which uses the parser in this crate ### Motivation The main motivation for this PR is to help development. Before this PR, `rust-analyzer` wouldn't provide any intellisense in the `ruff_python_parser` crate regarding the symbols in `ruff_python_ast` crate. ``` [ERROR][2024-05-03 13:47:06] .../vim/lsp/rpc.lua:770 "rpc" "/Users/dhruv/.cargo/bin/rust-analyzer" "stderr" "[ERROR project_model::workspace] cyclic deps: ruff_python_parser(Idx::<CrateData>(50)) -> ruff_python_ast(Idx::<CrateData>(37)), alternative path: ruff_python_ast(Idx::<CrateData>(37)) -> ruff_python_parser(Idx::<CrateData>(50))\n" ``` ## Test Plan Check the logs of `rust-analyzer` to not see any signs of cyclic dependency. |
||
---|---|---|
.. | ||
simple_tokenizer__comment_containing_single_quoted_string.snap | ||
simple_tokenizer__comment_containing_triple_quoted_string.snap | ||
simple_tokenizer__empty_string_literal.snap | ||
simple_tokenizer__identifier_ending_in_non_start_char.snap | ||
simple_tokenizer__identifier_starting_with_string_kind.snap | ||
simple_tokenizer__ignore_word_with_only_id_continuing_chars.snap | ||
simple_tokenizer__Reverse.snap | ||
simple_tokenizer__single_quoted_multiline_string_containing_comment.snap | ||
simple_tokenizer__single_quoted_multiline_string_implicit_concatenation.snap | ||
simple_tokenizer__string_followed_by_multiple_comments.snap | ||
simple_tokenizer__string_with_byte_kind.snap | ||
simple_tokenizer__string_with_double_escaped_backslash.snap | ||
simple_tokenizer__string_with_escaped_quote.snap | ||
simple_tokenizer__string_with_invalid_kind.snap | ||
simple_tokenizer__string_with_kind.snap | ||
simple_tokenizer__tokenize_bogus.snap | ||
simple_tokenizer__tokenize_comma.snap | ||
simple_tokenizer__tokenize_continuation.snap | ||
simple_tokenizer__tokenize_eq.snap | ||
simple_tokenizer__tokenize_invalid_operators.snap | ||
simple_tokenizer__tokenize_multichar.snap | ||
simple_tokenizer__tokenize_not_eq.snap | ||
simple_tokenizer__tokenize_operators.snap | ||
simple_tokenizer__tokenize_parentheses.snap | ||
simple_tokenizer__tokenize_slash.snap | ||
simple_tokenizer__tokenize_substring.snap | ||
simple_tokenizer__tokenize_trivia.snap | ||
simple_tokenizer__tricky_unicode.snap | ||
simple_tokenizer__triple_quoted_multiline_string_containing_comment.snap |