ruff/crates/ruff_python_ast/src
Charlie Marsh 6a5acde226
Make Parameters an optional field on ExprLambda (#6669)
## Summary

If a lambda doesn't contain any parameters, or any parameter _tokens_
(like `*`), we can use `None` for the parameters. This feels like a
better representation to me, since, e.g., what should the `TextRange` be
for a non-existent set of parameters? It also allows us to remove
several sites where we check if the `Parameters` is empty by seeing if
it contains any arguments, so semantically, we're already trying to
detect and model around this elsewhere.

Changing this also fixes a number of issues with dangling comments in
parameter-less lambdas, since those comments are now automatically
marked as dangling on the lambda. (As-is, we were also doing something
not-great whereby the lambda was responsible for formatting dangling
comments on the parameters, which has been removed.)

Closes https://github.com/astral-sh/ruff/issues/6646.

Closes https://github.com/astral-sh/ruff/issues/6647.

## Test Plan

`cargo test`
2023-08-18 15:34:54 +00:00
..
visitor Replace inline(always) with inline (#6590) 2023-08-15 08:58:11 +02: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 Make Parameters an optional field on ExprLambda (#6669) 2023-08-18 15:34:54 +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 Introduce ExpressionRef (#6637) 2023-08-17 10:07:16 -04:00
hashable.rs Pull in RustPython parser (#6099) 2023-07-27 09:29:11 +00:00
helpers.rs Remove Stmt::TryStar (#6566) 2023-08-14 13:39:44 -04:00
identifier.rs Use dedicated AST nodes on MemberKind (#6374) 2023-08-07 17:17:58 +00:00
imports.rs Include alias when formatting import-from structs (#5786) 2023-07-15 15:53:21 -04:00
lib.rs Expand expressions to include parentheses in E712 (#6575) 2023-08-17 15:51:09 +00:00
node.rs Make Parameters an optional field on ExprLambda (#6669) 2023-08-18 15:34:54 +00:00
nodes.rs Make Parameters an optional field on ExprLambda (#6669) 2023-08-18 15:34:54 +00:00
parenthesize.rs Expand expressions to include parentheses in E712 (#6575) 2023-08-17 15:51:09 +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 Expand expressions to include parentheses in E712 (#6575) 2023-08-17 15:51:09 +00:00
str.rs Replace dynamic implicit concatenation detection with parser flag (#6513) 2023-08-14 10:27:17 -04:00
traversal.rs Remove Stmt::TryStar (#6566) 2023-08-14 13:39:44 -04:00
types.rs Remove RefEquality (#6393) 2023-08-07 16:04:50 +00:00
visitor.rs Make Parameters an optional field on ExprLambda (#6669) 2023-08-18 15:34:54 +00:00
whitespace.rs Ignore end-of-line file exemption comments (#6160) 2023-07-29 00:40:32 +00:00