Skip to content

Commit

Permalink
Implement StmtReturn (#4960)
Browse files Browse the repository at this point in the history
* Implement StmtPass

This implements StmtPass as `pass`.

The snapshot diff is small because pass mainly occurs in bodies and function (#4951) and if/for bodies.

* Implement StmtReturn

This implements StmtReturn as `return` or `return {value}`.

The snapshot diff is small because return occurs in functions (#4951)
  • Loading branch information
konstin authored Jun 8, 2023
1 parent c8442e9 commit 467df23
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ return np.divide(
-return np.divide(
- where=view.sum_of_weights_of_weight_long**2 > view.sum_of_weights_squared, # type: ignore
-)
+NOT_YET_IMPLEMENTED_StmtReturn
+return NOT_IMPLEMENTED_call()
```
## Ruff Output
Expand Down Expand Up @@ -234,7 +234,7 @@ q = [i for i in []]
# WE SHOULD DEFINITELY NOT EAT THESE COMMENTS (https://github.com/psf/black/issues/2873)
NOT_YET_IMPLEMENTED_StmtIf
NOT_YET_IMPLEMENTED_StmtReturn
return NOT_IMPLEMENTED_call()
```
## Black Output
Expand Down
20 changes: 17 additions & 3 deletions crates/ruff_python_formatter/src/statement/stmt_return.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,26 @@
use crate::{not_yet_implemented, FormatNodeRule, PyFormatter};
use ruff_formatter::{write, Buffer, FormatResult};
use crate::expression::parentheses::Parenthesize;
use crate::{AsFormat, FormatNodeRule, PyFormatter};
use ruff_formatter::prelude::{space, text};
use ruff_formatter::{write, Buffer, Format, FormatResult};
use rustpython_parser::ast::StmtReturn;

#[derive(Default)]
pub struct FormatStmtReturn;

impl FormatNodeRule<StmtReturn> for FormatStmtReturn {
fn fmt_fields(&self, item: &StmtReturn, f: &mut PyFormatter) -> FormatResult<()> {
write!(f, [not_yet_implemented(item)])
let StmtReturn { range: _, value } = item;
if let Some(value) = value {
write!(
f,
[
text("return"),
space(),
value.format().with_options(Parenthesize::IfBreaks)
]
)
} else {
text("return").fmt(f)
}
}
}

0 comments on commit 467df23

Please sign in to comment.