When your code loses its way
TL;DR: Missing return statements cause unexpected behavior.
When you forget to return a value, your function keeps executing and your app might show incomplete or wrong information.
fun totalDistance(activity: Activity): Double {
if (activity.type == "Running") {
activity.calculateDistance()
// Missing return here
} else {
return 0.0
}
// Other options are omitted for simplicity
// Some languages raise a runtime error
// If the function does not return a value
// of the correct type (in this case a Double)
}
fun totalDistance(activity: Activity): Double {
if (activity.type == "Running") {
return activity.calculateDistance()
// Now it returns the value
} else {
return 0.0
}
}
You can detect this smell when your function lacks a return statement in certain branches.
Most static analyzers and linters often catch this.
it's important to maintain a clear and predictable relationship between your code and the Real World.
If a function is intended to calculate and return a value, it should always do so.
Failing to return a value breaks the MAPPER, leading to inaccurate behavior and unreliable results.
AI tools usually don't generate this smell.
Most AI-powered linters quickly catch missing returns with static analysis or by examining your code's Abstract Syntax Tree.
Remember: AI Assistants make lots of mistakes
Without Proper Instructions |
With Specific Instructions |
---|---|
A missing return statement breaks your codeโs flow and produces unreliable results.
Always ensure every branch in your function returns something meaningful.
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xv
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxi
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxiii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxiv
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxviii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-viii-8mn3352
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxii
Code Smells are my opinion.
Photo by Tim Johnson on Unsplash
A bug is never just a mistake. It represents something bigger.
Sergey Zefirov
This article is part of the CodeSmell Series.