DEV Community

Cover image for Code Smell 287 - Unused Local Assignment
Maxi Contieri
Maxi Contieri

Posted on • Originally published at maximilianocontieri.com

5 1 1

Code Smell 287 - Unused Local Assignment

Are you using the returned value?

TL;DR: Avoid assigning values you never use.

Problems

Solutions

  1. Remove unused assignments.
  2. Try to avoid side effects.

Context

When you assign a value to a local variable but never use it, you create unnecessary clutter in your code.

This can confuse others and make the code harder to maintain.

Sometimes, when debugging you can assign temporal variables for better inspection.

This also happens when you assign the execution to an object property but it is harder to follow.

It is also a sign of a mutating object because if you remove the assignment, only the side effects remain.

Mutating objects can cause unexpected side effects, making it harder to track changes.

Sample Code

Wrong

function updateUserName(user, newname) {
  user.name = newname;
  return user;
}

function performMaintenance(existingUser) {
  let updatedUser = updateUserName(existingUser, "Bobby Peru");
  // Other tasks
}
// The variable updatedUser is never used
Enter fullscreen mode Exit fullscreen mode

Right

function updateUserName(user, newname) {
  user.name = newname;
  // Just side effects without explicit return
}

function performMaintenance(existingUser) {
  updateUserName(existingUser, "Bobby Peru");
  // Other tasks
}
Enter fullscreen mode Exit fullscreen mode

Detection

[X] Automatic

You can detect this smell using static analysis tools or code reviews that check for unused variables after assignment.

Most linters flag this as an issue.

Tags

  • Bloaters

Level

[x] Beginner

Why the Bijection Is Important

It stays clean and efficient when your code accurately reflects real-world logic.

Unused assignments break this connection, making it harder to understand the intent and maintain the code.

AI Generation

AI tools seldom generate unused variable assignments when they misunderstand intent.

AI Detection

AI-assisted refactoring with clear instructions can flag unused variables and suggest removals, but it might not always understand if the return value should have been used.

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

Unused variables after mutations create noise and confusion.

Don't assign the return value if you don't need it.

If the method should return something meaningful, make sure you use it.

Relations

More Information

Disclaimer

Code Smells are my opinion.

Credits

Photo by Evan Demicoli on Unsplash


If you have to spend effort to decipher code, you should rewrite it.

Martin Golding


This article is part of the CodeSmell Series.

Redis image

Short-term memory for faster
AI agents 🤖💨

AI agents struggle with latency and context switching. Redis fixes it with a fast, in-memory layer for short-term context—plus native support for vectors and semi-structured data to keep real-time workflows on track.

Start building

Top comments (0)

Dev Diairies image

User Feedback & The Pivot That Saved The Project

🔥 Check out Episode 3 of Dev Diairies, following a successful Hackathon project turned startup.

Watch full video 🎥

👋 Kindness is contagious

Explore this compelling article, highly praised by the collaborative DEV Community. All developers, whether just starting out or already experienced, are invited to share insights and grow our collective expertise.

A quick “thank you” can lift someone’s spirits—drop your kudos in the comments!

On DEV, sharing experiences sparks innovation and strengthens our connections. If this post resonated with you, a brief note of appreciation goes a long way.

Get Started