Photo by Jungwoo Hong on Unsplash
Code Smell 199 - Gratuitous Booleans
A code that either returns or no returns at all
TL;DR: Check carefully your boolean expressions
Problems
Readability
Possible Defects
Solutions
- Refactor and remove obsolete code
Context
When a function is designed to return an invariant value, it may be poor design, but it shouldn’t adversely affect the outcome of your program. However, when it happens on all paths through the logic, it is likely a mistake.
This rule raises an issue when a function contains several return statements that all return the same value.
Sample Code
Wrong
# Gratuitous boolean expressions
if a > 0 and True:
print("a is positive")
else:
print("a is not positive")
Right
if a > 0:
print("a is positive")
else:
print("a is not positive")
Detection
[X] Automatic
Many linters can detect this problem by parsing execution trees.
Tags
- Complexity
Conclusion
Boolean expressions should be straightforward to read and understand.
Relations
More Info
Disclaimer
Code Smells are just my opinion.
Credits
Photo by Jungwoo Hong on Unsplash
The central enemy of reliability is complexity.
Daniel Geer
This article is part of the CodeSmell Series.