ruff/crates/ruff_python_ast/src
Charlie Marsh 5df0326bc8
Treat parameters-with-newline as empty in function formatting (#7550)
## Summary

If a function has no parameters (and no comments within the parameters'
`()`), we're supposed to wrap the return annotation _whenever_ it
breaks. However, our `empty_parameters` test didn't properly account for
the case in which the parameters include a newline (but no other
content), like:

```python
def get_dashboards_hierarchy(
) -> Dict[Type['BaseDashboard'], List[Type['BaseDashboard']]]:
    """Get hierarchy of dashboards classes.

    Returns:
        Dict of dashboards classes.
    """
    dashboards_hierarchy = {}
```

This PR fixes that detection. Instead of lexing, it now checks if the
parameters itself is empty (or if it contains comments).

Closes https://github.com/astral-sh/ruff/issues/7457.
2023-09-20 16:20:22 -04:00
..
visitor Introduce AST nodes for `PatternMatchClass` arguments (#6881) 2023-08-26 14:45:44 +00:00
all.rs Add an implicit concatenation flag to string and bytes constants (#6512) 2023-08-14 13:46:54 +00:00
call_path.rs Store call paths rather than stringified names (#6102) 2023-08-05 15:21:50 +00:00
comparable.rs Remove `ExprContext` from `ComparableExpr` (#7362) 2023-09-14 15:40:02 +00:00
docstrings.rs Move Python whitespace utilities into new `ruff_python_whitespace` crate (#4993) 2023-06-10 00:59:57 +00:00
expression.rs Move `Ranged` into `ruff_text_size` (#6919) 2023-08-27 14:12:51 -04:00
hashable.rs Pull in RustPython parser (#6099) 2023-07-27 09:29:11 +00:00
helpers.rs Introduce `ArgOrKeyword` to keep call parameter order (#7302) 2023-09-13 08:45:46 +00:00
identifier.rs Move `Ranged` into `ruff_text_size` (#6919) 2023-08-27 14:12:51 -04:00
imports.rs Include alias when formatting import-from structs (#5786) 2023-07-15 15:53:21 -04:00
lib.rs Add TOML files to `SourceType` (#6929) 2023-08-28 15:01:48 +00:00
node.rs Introduce `ArgOrKeyword` to keep call parameter order (#7302) 2023-09-13 08:45:46 +00:00
nodes.rs Treat parameters-with-newline as empty in function formatting (#7550) 2023-09-20 16:20:22 -04:00
parenthesize.rs Use CommentRanges in backwards lexing (#7360) 2023-09-16 03:21:45 +00:00
relocate.rs Add an implicit concatenation flag to string and bytes constants (#6512) 2023-08-14 13:46:54 +00:00
statement_visitor.rs Remove `Stmt::TryStar` (#6566) 2023-08-14 13:39:44 -04:00
stmt_if.rs Move `Ranged` into `ruff_text_size` (#6919) 2023-08-27 14:12:51 -04:00
str.rs Replace dynamic implicit concatenation detection with parser flag (#6513) 2023-08-14 10:27:17 -04:00
traversal.rs [refurb] Implement `repeated-append` rule (`FURB113`) (#6702) 2023-08-28 22:51:59 +00:00
types.rs Remove `RefEquality` (#6393) 2023-08-07 16:04:50 +00:00
visitor.rs Don't reorder parameters in function calls (#7268) 2023-09-13 09:01:49 +00:00
whitespace.rs Move `Ranged` into `ruff_text_size` (#6919) 2023-08-27 14:12:51 -04:00