diff --git a/crates/ruff_python_formatter/resources/test/fixtures/ruff/expression/lambda.py b/crates/ruff_python_formatter/resources/test/fixtures/ruff/expression/lambda.py index 42634acb47..5234ce79a0 100644 --- a/crates/ruff_python_formatter/resources/test/fixtures/ruff/expression/lambda.py +++ b/crates/ruff_python_formatter/resources/test/fixtures/ruff/expression/lambda.py @@ -91,3 +91,5 @@ lambda *args, b, **kwds,: 0 lambda *, b, **kwds,: 0 lambda a, *args, b, **kwds,: 0 lambda a, *, b, **kwds,: 0 +lambda a, /: a +lambda a, /, c: a diff --git a/crates/ruff_python_formatter/src/expression/expr_lambda.rs b/crates/ruff_python_formatter/src/expression/expr_lambda.rs index 1b3aa4bdef..c8a23a18f0 100644 --- a/crates/ruff_python_formatter/src/expression/expr_lambda.rs +++ b/crates/ruff_python_formatter/src/expression/expr_lambda.rs @@ -22,7 +22,10 @@ impl FormatNodeRule for FormatExprLambda { write!(f, [text("lambda")])?; - if !parameters.args.is_empty() || parameters.vararg.is_some() || parameters.kwarg.is_some() + if !parameters.args.is_empty() + || !parameters.posonlyargs.is_empty() + || parameters.vararg.is_some() + || parameters.kwarg.is_some() { write!( f, diff --git a/crates/ruff_python_formatter/tests/snapshots/black_compatibility@py_38__pep_570.py.snap b/crates/ruff_python_formatter/tests/snapshots/black_compatibility@py_38__pep_570.py.snap deleted file mode 100644 index b1326fc877..0000000000 --- a/crates/ruff_python_formatter/tests/snapshots/black_compatibility@py_38__pep_570.py.snap +++ /dev/null @@ -1,168 +0,0 @@ ---- -source: crates/ruff_python_formatter/tests/fixtures.rs -input_file: crates/ruff_python_formatter/resources/test/fixtures/black/py_38/pep_570.py ---- -## Input - -```py -def positional_only_arg(a, /): - pass - - -def all_markers(a, b, /, c, d, *, e, f): - pass - - -def all_markers_with_args_and_kwargs( - a_long_one, - b_long_one, - /, - c_long_one, - d_long_one, - *args, - e_long_one, - f_long_one, - **kwargs, -): - pass - - -def all_markers_with_defaults(a, b=1, /, c=2, d=3, *, e=4, f=5): - pass - - -def long_one_with_long_parameter_names( - but_all_of_them, - are_positional_only, - arguments_mmmmkay, - so_this_is_only_valid_after, - three_point_eight, - /, -): - pass - - -lambda a, /: a - -lambda a, b, /, c, d, *, e, f: a - -lambda a, b, /, c, d, *args, e, f, **kwargs: args - -lambda a, b=1, /, c=2, d=3, *, e=4, f=5: 1 -``` - -## Black Differences - -```diff ---- Black -+++ Ruff -@@ -35,7 +35,7 @@ - pass - - --lambda a, /: a -+lambda: a - - lambda a, b, /, c, d, *, e, f: a - -``` - -## Ruff Output - -```py -def positional_only_arg(a, /): - pass - - -def all_markers(a, b, /, c, d, *, e, f): - pass - - -def all_markers_with_args_and_kwargs( - a_long_one, - b_long_one, - /, - c_long_one, - d_long_one, - *args, - e_long_one, - f_long_one, - **kwargs, -): - pass - - -def all_markers_with_defaults(a, b=1, /, c=2, d=3, *, e=4, f=5): - pass - - -def long_one_with_long_parameter_names( - but_all_of_them, - are_positional_only, - arguments_mmmmkay, - so_this_is_only_valid_after, - three_point_eight, - /, -): - pass - - -lambda: a - -lambda a, b, /, c, d, *, e, f: a - -lambda a, b, /, c, d, *args, e, f, **kwargs: args - -lambda a, b=1, /, c=2, d=3, *, e=4, f=5: 1 -``` - -## Black Output - -```py -def positional_only_arg(a, /): - pass - - -def all_markers(a, b, /, c, d, *, e, f): - pass - - -def all_markers_with_args_and_kwargs( - a_long_one, - b_long_one, - /, - c_long_one, - d_long_one, - *args, - e_long_one, - f_long_one, - **kwargs, -): - pass - - -def all_markers_with_defaults(a, b=1, /, c=2, d=3, *, e=4, f=5): - pass - - -def long_one_with_long_parameter_names( - but_all_of_them, - are_positional_only, - arguments_mmmmkay, - so_this_is_only_valid_after, - three_point_eight, - /, -): - pass - - -lambda a, /: a - -lambda a, b, /, c, d, *, e, f: a - -lambda a, b, /, c, d, *args, e, f, **kwargs: args - -lambda a, b=1, /, c=2, d=3, *, e=4, f=5: 1 -``` - - diff --git a/crates/ruff_python_formatter/tests/snapshots/format@expression__lambda.py.snap b/crates/ruff_python_formatter/tests/snapshots/format@expression__lambda.py.snap index 2d126b3408..0c1ec4565e 100644 --- a/crates/ruff_python_formatter/tests/snapshots/format@expression__lambda.py.snap +++ b/crates/ruff_python_formatter/tests/snapshots/format@expression__lambda.py.snap @@ -97,6 +97,8 @@ lambda *args, b, **kwds,: 0 lambda *, b, **kwds,: 0 lambda a, *args, b, **kwds,: 0 lambda a, *, b, **kwds,: 0 +lambda a, /: a +lambda a, /, c: a ``` ## Output @@ -195,6 +197,8 @@ lambda *args, b, **kwds,: 0 lambda *, b, **kwds,: 0 lambda a, *args, b, **kwds,: 0 lambda a, *, b, **kwds,: 0 +lambda a, /: a +lambda a, /, c: a ```