---
title: "Speculative Generality"
type: "code-smell"
slug: "speculative-generality"
url: "http://localhost:3000/en/smells/speculative-generality.md"
category: "Dispensables"
description: "There’s an unused class, method, field or parameter."
---
# Speculative Generality

> There’s an unused class, method, field or parameter.

## Signs and Symptoms

There’s an unused class, method, field or parameter.

## Reasons for the Problem

Sometimes code is created “just in case” to support anticipated future features that never get implemented. As a result, code becomes hard to understand and support.

## Payoff

* Slimmer code.
* Easier support.
## Relations

**Treated by**

- [Collapse Hierarchy](/en/collapse-hierarchy.md)
- [Inline Class](/en/inline-class.md)
- [Inline Method](/en/inline-method.md)
- [Remove Parameter](/en/remove-parameter.md)


## Detected by

- **sonar** `S1172` — Unused function parameters should be removed (https://rules.sonarsource.com/java/RSPEC-1172/)
- **sonar** `S1144` — Unused "private" methods should be removed (https://rules.sonarsource.com/java/RSPEC-1144/)
- **sonar** `S1068` — Unused "private" fields should be removed (https://rules.sonarsource.com/java/RSPEC-1068/)
- **eslint** `no-unused-vars` — Disallow unused variables (args option for parameters) (https://eslint.org/docs/latest/rules/no-unused-vars)
- **pylint** `W0613` — unused-argument (https://pylint.readthedocs.io/en/stable/user_guide/messages/warning/unused-argument.html)
