mirror of https://github.com/astral-sh/ruff
feat: let SIM103 return expressions without bool() wrapping (#2410)
This commit is contained in:
parent
d601abe01b
commit
1dd9ccf7f6
|
|
@ -6,6 +6,14 @@ def f():
|
|||
return False
|
||||
|
||||
|
||||
def f():
|
||||
# SIM103
|
||||
if a == b:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def f():
|
||||
# SIM103
|
||||
if a:
|
||||
|
|
|
|||
|
|
@ -184,16 +184,21 @@ pub fn return_bool_condition_directly(checker: &mut Checker, stmt: &Stmt) {
|
|||
&& matches!(else_return, Bool::False)
|
||||
&& !has_comments(stmt, checker.locator)
|
||||
{
|
||||
let return_stmt = create_stmt(StmtKind::Return {
|
||||
value: Some(Box::new(create_expr(ExprKind::Call {
|
||||
func: Box::new(create_expr(ExprKind::Name {
|
||||
id: "bool".to_string(),
|
||||
ctx: ExprContext::Load,
|
||||
})),
|
||||
args: vec![(**test).clone()],
|
||||
keywords: vec![],
|
||||
}))),
|
||||
});
|
||||
let return_stmt = match test.node {
|
||||
ExprKind::Compare { .. } => create_stmt(StmtKind::Return {
|
||||
value: Some(test.clone()),
|
||||
}),
|
||||
_ => create_stmt(StmtKind::Return {
|
||||
value: Some(Box::new(create_expr(ExprKind::Call {
|
||||
func: Box::new(create_expr(ExprKind::Name {
|
||||
id: "bool".to_string(),
|
||||
ctx: ExprContext::Load,
|
||||
})),
|
||||
args: vec![(**test).clone()],
|
||||
keywords: vec![],
|
||||
}))),
|
||||
}),
|
||||
};
|
||||
diagnostic.amend(Fix::replacement(
|
||||
unparse_stmt(&return_stmt, checker.stylist),
|
||||
stmt.location,
|
||||
|
|
|
|||
|
|
@ -23,50 +23,69 @@ expression: diagnostics
|
|||
parent: ~
|
||||
- kind:
|
||||
ReturnBoolConditionDirectly:
|
||||
cond: b
|
||||
cond: a == b
|
||||
location:
|
||||
row: 13
|
||||
row: 11
|
||||
column: 4
|
||||
end_location:
|
||||
row: 16
|
||||
row: 14
|
||||
column: 20
|
||||
fix:
|
||||
content:
|
||||
- return bool(b)
|
||||
- return a == b
|
||||
location:
|
||||
row: 13
|
||||
row: 11
|
||||
column: 4
|
||||
end_location:
|
||||
row: 16
|
||||
row: 14
|
||||
column: 20
|
||||
parent: ~
|
||||
- kind:
|
||||
ReturnBoolConditionDirectly:
|
||||
cond: b
|
||||
location:
|
||||
row: 21
|
||||
column: 4
|
||||
end_location:
|
||||
row: 24
|
||||
column: 20
|
||||
fix:
|
||||
content:
|
||||
- return bool(b)
|
||||
location:
|
||||
row: 21
|
||||
column: 4
|
||||
end_location:
|
||||
row: 24
|
||||
column: 20
|
||||
parent: ~
|
||||
- kind:
|
||||
ReturnBoolConditionDirectly:
|
||||
cond: b
|
||||
location:
|
||||
row: 32
|
||||
column: 8
|
||||
end_location:
|
||||
row: 27
|
||||
row: 35
|
||||
column: 24
|
||||
fix:
|
||||
content:
|
||||
- return bool(b)
|
||||
location:
|
||||
row: 24
|
||||
row: 32
|
||||
column: 8
|
||||
end_location:
|
||||
row: 27
|
||||
row: 35
|
||||
column: 24
|
||||
parent: ~
|
||||
- kind:
|
||||
ReturnBoolConditionDirectly:
|
||||
cond: a
|
||||
location:
|
||||
row: 49
|
||||
row: 57
|
||||
column: 4
|
||||
end_location:
|
||||
row: 52
|
||||
row: 60
|
||||
column: 19
|
||||
fix: ~
|
||||
parent: ~
|
||||
|
|
|
|||
Loading…
Reference in New Issue