paint-brush
Code Smell 292 - Missing Returnโ€‚by@mcsee

Code Smell 292 - Missing Return

by Maximiliano ContieriFebruary 27th, 2025
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Missing return statements cause unexpected behavior.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Code Smell 292 - Missing Return
Maximiliano Contieri HackerNoon profile picture

When your code loses its way

TL;DR: Missing return statements cause unexpected behavior.

Problems ๐Ÿ˜”

  • Silent failures
  • Unreliable results
  • Hard debugging
  • Inconsistent and misleading behavior
  • Broken logic

Solutions ๐Ÿ˜ƒ

  1. Always return values
  2. Use clear flow
  3. Validate conditions
  4. Test all return paths
  5. Use early returns
  6. Remove IFs

Refactorings โš™๏ธ

Context ๐Ÿ’ฌ

When you forget to return a value, your function keeps executing and your app might show incomplete or wrong information.

Sample Code ๐Ÿ“–

Wrong โŒ

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)
}

Right ๐Ÿ‘‰

fun totalDistance(activity: Activity): Double {
    if (activity.type == "Running") {
        return activity.calculateDistance() 
        // Now it returns the value
    } else {
        return 0.0
    }
}

Detection ๐Ÿ”

  • [x]Automatic

You can detect this smell when your function lacks a return statement in certain branches.


Most static analyzers and linters often catch this.

Tags ๐Ÿท๏ธ

  • IFs

Level ๐Ÿ”‹

  • [x]Beginner

Why the Bijection Is Important ๐Ÿ—บ๏ธ

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 Generation ๐Ÿค–

AI tools usually don't generate this smell.

AI Detection ๐Ÿฅƒ

Most AI-powered linters quickly catch missing returns with static analysis or by examining your code's Abstract Syntax Tree.

Try Them! ๐Ÿ› 

Remember: AI Assistants make lots of mistakes

Without Proper Instructions

With Specific Instructions

ChatGPT

ChatGPT

Claude

Claude

Perplexity

Perplexity

Copilot

Copilot

Gemini

Gemini

DeepSeek

DeepSeek

Meta AI

Meta AI

Conclusion ๐Ÿ

A missing return statement breaks your codeโ€™s flow and produces unreliable results.

Always ensure every branch in your function returns something meaningful.

Relations ๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ

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

Disclaimer ๐Ÿ“˜

Code Smells are my opinion.

Credits ๐Ÿ™

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.