fix: group dotted identifiers split by interleaved comments (issue712)
Identifiers may carry comments between their tokens (e.g. name -- c\n . -- c\n obj). _group only skipped whitespace when locating the tokens around a joining token, so an interleaved comment defeated the prev/next checks and the identifier was never formed. Add an opt-in skip_comments flag to _group and enable it for group_period and group_as; the comments stay inside the resulting group. Also skip comments in get_parent_name and avoid a redundant separating space in StripCommentsFilter for the newly reachable interleaved-comment identifiers.
This commit is contained in:
1 parent
40155f3cf6
commit
9bd93037fa
4 files changed
+58
-9
No files matched your search
+3
-1
@@ -387,7 +387,9 @@ class TokenList(Token):
|
||||
A parent object is identified by the first occurring dot.
|
||||
"""
|
||||
dot_idx, _ = self.token_next_by(m=(T.Punctuation, '.'))
|
||||
_, prev_ = self.token_prev(dot_idx)
|
||||
# skip_cm so a comment between the parent name and the dot (issue712)
|
||||
# does not get mistaken for the parent name.
|
||||
_, prev_ = self.token_prev(dot_idx, skip_cm=True)
|
||||
return remove_quotes(prev_.value) if prev_ is not None else None
|
||||
|
||||
def _get_first_name(self, idx=None, reverse=False, keywords=False,
|
||||
|
||||
Reference in new issue
Block a user