Idempotent loop body
Reports loops whose second and all subsequent iterations do not produce any additional side effects other than the one produced by the first iteration, which can indicate a programming error.
Such loops may iterate only zero, one, or infinite number of times. If the infinite number of times case is unreachable, such a loop can be replaced with an if
statement. Otherwise, there's a possibility that the program can get stuck.
Example:
public void foo(String baseName, String names) {
int suffix = 1;
String name = baseName;
while (names.contains(name)) {
// error: suffix is not updated making loop body idempotent
name = baseName + suffix;
}
}
Locating this inspection
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
IdempotentLoopBody- Via Settings dialog
Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.
New in 2018.1
Availability
- By default bundled with
- Can be installed with plugin
Java, 241.18072
Last modified: 18 June 2024