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;
}
}
New in 2018.1
Inspection Details | |
---|---|
Available in: | IntelliJ IDEA 2023.3, Qodana for JVM 2023.3 |
Plugin: | Java, 233.SNAPSHOT |
Last modified: 13 July 2023