Handle implicit strings in `can_omit_parentheses (#6940)

This commit is contained in:
Micha Reiser 2023-08-28 14:20:29 +02:00 committed by GitHub
parent 9c98416b96
commit 60097bebcd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8,7 +8,7 @@ use ruff_formatter::{
use ruff_python_ast as ast; use ruff_python_ast as ast;
use ruff_python_ast::node::AnyNodeRef; use ruff_python_ast::node::AnyNodeRef;
use ruff_python_ast::visitor::preorder::{walk_expr, PreorderVisitor}; 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::builders::parenthesize_if_expands;
use crate::comments::leading_comments; use crate::comments::leading_comments;
@ -521,6 +521,25 @@ impl<'input> CanOmitOptionalParenthesesVisitor<'input> {
return; 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::NamedExpr(_)
| Expr::GeneratorExp(_) | Expr::GeneratorExp(_)
| Expr::Lambda(_) | Expr::Lambda(_)
@ -767,8 +786,6 @@ enum OperatorPriority {
BitwiseAnd, BitwiseAnd,
BitwiseOr, BitwiseOr,
BitwiseXor, BitwiseXor,
// TODO(micha)
#[allow(unused)]
String, String,
BooleanOperation, BooleanOperation,
Conditional, Conditional,