From 60097bebcd48d9549d753a8b84935d06e61f3f50 Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Mon, 28 Aug 2023 14:20:29 +0200 Subject: [PATCH] Handle implicit strings in `can_omit_parentheses (#6940) --- .../src/expression/mod.rs | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/crates/ruff_python_formatter/src/expression/mod.rs b/crates/ruff_python_formatter/src/expression/mod.rs index 52255ec4f4..b09981b248 100644 --- a/crates/ruff_python_formatter/src/expression/mod.rs +++ b/crates/ruff_python_formatter/src/expression/mod.rs @@ -8,7 +8,7 @@ use ruff_formatter::{ use ruff_python_ast as ast; use ruff_python_ast::node::AnyNodeRef; use ruff_python_ast::visitor::preorder::{walk_expr, PreorderVisitor}; -use ruff_python_ast::{Expr, ExpressionRef, Operator}; +use ruff_python_ast::{Constant, Expr, ExpressionRef, Operator}; use crate::builders::parenthesize_if_expands; use crate::comments::leading_comments; @@ -521,6 +521,25 @@ impl<'input> CanOmitOptionalParenthesesVisitor<'input> { return; } + Expr::Constant(ast::ExprConstant { + value: + Constant::Str(ast::StringConstant { + implicit_concatenated: true, + .. + }) + | Constant::Bytes(ast::BytesConstant { + implicit_concatenated: true, + .. + }), + .. + }) + | Expr::FString(ast::ExprFString { + implicit_concatenated: true, + .. + }) => { + self.update_max_priority(OperatorPriority::String); + } + Expr::NamedExpr(_) | Expr::GeneratorExp(_) | Expr::Lambda(_) @@ -767,8 +786,6 @@ enum OperatorPriority { BitwiseAnd, BitwiseOr, BitwiseXor, - // TODO(micha) - #[allow(unused)] String, BooleanOperation, Conditional,