41 lines
990 B
Plaintext
41 lines
990 B
Plaintext
This rule raises an issue when a constant expression is used as a condition in an ``++if++``, ``++elif++``, a conditional expression or other boolean expressions.
|
|
|
|
== Why is this an issue?
|
|
|
|
When a constant is used as a condition, either it has no effect on the execution flow and it can be removed, or some code will never be executed and it is a bug.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,python,diff-id=1,diff-type=noncompliant]
|
|
----
|
|
def foo():
|
|
a = True
|
|
if a: # Noncompliant: the condition is always true
|
|
return 1
|
|
else:
|
|
return 2
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,python,diff-id=1,diff-type=compliant]
|
|
----
|
|
def foo():
|
|
a = bar()
|
|
if a:
|
|
return 1
|
|
else:
|
|
return 2
|
|
----
|
|
|
|
|
|
== Resources
|
|
|
|
=== Documentation
|
|
|
|
* Python documentation - https://www.python.org/dev/peps/pep-0285/[PEP 285 - Adding a bool type]
|
|
* Python documentation - https://docs.python.org/3/library/stdtypes.html#truth-value-testing[Python documentation - Truth Value Testing]
|
|
|