mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-31 23:57:35 +00:00
Avoid off-by-one error in with-item named expressions (#8915)
## Summary Given `with (a := b): pass`, we truncate the `WithItem` range by one on both sides such that the parentheses are part of the statement, rather than the item. However, for `with (a := b) as x: pass`, we want to avoid this trick. Closes https://github.com/astral-sh/ruff/issues/8913.
This commit is contained in:
parent
fd70cd789f
commit
774c77adae
4 changed files with 5 additions and 5 deletions
|
@ -1026,7 +1026,7 @@ WithItems: Vec<ast::WithItem> = {
|
|||
// ```
|
||||
// In this case, the `(` and `)` are part of the `with` statement.
|
||||
// The same applies to `yield` and `yield from`.
|
||||
let item = if matches!(item.context_expr, ast::Expr::NamedExpr(_) | ast::Expr::Yield(_) | ast::Expr::YieldFrom(_)) {
|
||||
let item = if item.optional_vars.is_none() && matches!(item.context_expr, ast::Expr::NamedExpr(_) | ast::Expr::Yield(_) | ast::Expr::YieldFrom(_)) {
|
||||
ast::WithItem {
|
||||
range: item.range().add_start(TextSize::new(1)).sub_end(TextSize::new(1)),
|
||||
context_expr: item.context_expr,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue