Simplify if/else that returns opposite boolean literals

이 제품은 선택한 Datadog 사이트에서 지원되지 않습니다. ().
이 페이지는 아직 한국어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우 언제든지 연락주시기 바랍니다.

Metadata

ID: rust-code-quality/needless-bool

Language: Rust

Severity: Warning

Category: Code Style

Description

An if/else expression that returns true in one branch and false in the other is equivalent to the condition itself (or its negation). The boolean literal branches are redundant and add noise without adding clarity.

How to remediate?

Replace the if/else with the condition directly:

// Before
if x > 0 { true } else { false }

// After
x > 0

// Before
if x > 0 { false } else { true }

// After
!(x > 0)

Non-Compliant Code Examples

fn check_positive(x: i32) -> bool {
    if x > 0 { true } else { false }
}

fn check_negative(x: i32) -> bool {
    if x > 0 { false } else { true }
}

fn is_admin(role: &str) -> bool {
      if role == "admin" { true } else { false }
}

Compliant Code Examples

fn same_branch(x: i32) -> bool {
    if x > 0 { true } else { true }
}

fn non_literal(x: i32) -> bool {
    if x > 0 { x > 1 } else { false }
}

fn no_else(x: i32) -> bool {
    if x > 0 { return true; }
    false
}

fn has_permission(role: &str, action: &str) -> bool {
      if role == "admin" { log_access(action); true } else { false }
}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

원활한 통합. Datadog Code Security 사용해 보기