Skip to content

Visit Identifier node as part of the SourceOrderVisitor #17110

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 1, 2025

Conversation

MichaReiser
Copy link
Member

Summary

I don't remember exactly when we made Identifier a node but it is now considered a node (it implements AnyNodeRef, it has a range). However, we never updated
the SourceOrderVisitor to visit identifiers because we never had a use case for it and visiting new nodes can change how the formatter associates comments (breaking change!).
This PR updates the SourceOrderVisitor to visit identifiers and changes the formatter comment visitor to skip identifiers (updating the visitor might be desired because it could help simplifying some comment placement logic but this is out of scope for this PR).

Test Plan

Tests, updated snapshot tests

@MichaReiser MichaReiser added the internal An internal refactor or improvement label Apr 1, 2025
Copy link
Contributor

github-actions bot commented Apr 1, 2025

ruff-ecosystem results

Linter (stable)

✅ ecosystem check detected no linter changes.

Linter (preview)

✅ ecosystem check detected no linter changes.

Formatter (stable)

✅ ecosystem check detected no format changes.

Formatter (preview)

✅ ecosystem check detected no format changes.

Copy link
Contributor

@ntBre ntBre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! I might have to try using this for the match pattern visitor from #16957.

@MichaReiser
Copy link
Member Author

Yeah, I was too lazy to also change Visitor but I think we could (we just need to be careful and review the call sites to skip visiting if it can change behavior). But you can also just use the SourceOrderVisitor if you don't require semantic order

@MichaReiser MichaReiser merged commit 5a876ed into main Apr 1, 2025
22 checks passed
@MichaReiser MichaReiser deleted the micha/source-order-visitor-visit-identifier branch April 1, 2025 14:58
dcreager added a commit that referenced this pull request Apr 1, 2025
* main:
  [red-knot] Add property tests for callable types (#17006)
  [red-knot] Disjointness for callable types (#17094)
  [red-knot] Flatten `Type::Callable` into four `Type` variants (#17126)
  mdtest.py: do a full mdtest run immediately when the script is executed (#17128)
  [red-knot] Fix callable subtyping for standard parameters (#17125)
  [red-knot] Fix more `redundant-cast` false positives (#17119)
  Sync vendored typeshed stubs (#17106)
  [red-knot] support Any as a class in typeshed (#17107)
  Visit `Identifier` node as part of the `SourceOrderVisitor` (#17110)
  [red-knot] Don't infer Todo for quite so many tuple type expressions (#17116)
  CI: Run pre-commit on depot machine (#17120)
  Error instead of `panic!` when running Ruff from a deleted directory (#16903) (#17054)
  Control flow graph: setup (#17064)
  [red-knot] Playground improvements (#17109)
  [red-knot] IDE crate (#17045)
  Update dependency vite to v6.2.4 (#17104)
  [red-knot] Add redundant-cast error (#17100)
  [red-knot] Narrowing on `in tuple[...]` and `in str` (#17059)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal An internal refactor or improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants