This repository was archived by the owner on Jul 27, 2023. It is now read-only.
Add Decorator node - #7
Merged
Merged
Conversation
This was referenced Jun 6, 2023
Member
Author
|
Current dependencies on/for this PR:
This comment was auto-generated by Graphite. |
MichaReiser
changed the base branch from
named-expr-range
to
include-parentheses-in-arguments-range
June 6, 2023 12:39
MichaReiser
force-pushed
the
decorator-node
branch
from
June 6, 2023 12:39
c2a0a29 to
fce0ed9
Compare
MichaReiser
marked this pull request as ready for review
June 6, 2023 12:46
MichaReiser
force-pushed
the
decorator-node
branch
from
June 8, 2023 05:39
fce0ed9 to
5dce337
Compare
charliermarsh
pushed a commit
that referenced
this pull request
Jun 19, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This PR introduces a new
Decoratornode. The node wraps an expression and its range includes the@.Having a dedicated node for
Decorators simplifies the implementation of the Formatter when handling leading comments:The leading comment should be attached to the whole decorator and not just the expression coming after the
@. It's also necessary that we distinguish between comments attached to the decorator vs comments attached to the decorator's expression:This is straightforward when the decorator and the expression are different nodes.
This change has the added benefit that the Linter now gets the full range of the decorator. For example, we have fixes that replace remove the whole decorator but they incorrectly assume that its safe to subtract 1 from the start (offset of the
@). However, this doesn't account for:which is valid python