Tail recursion
Reports tail recursion, that is, when a method calls itself as its last action before returning.
Tail recursion can always be replaced by looping, which will be considerably faster. Some JVMs perform tail-call optimization, while others do not. Thus, tail-recursive solutions may have considerably different performance characteristics on different virtual machines.
Example:
int factorial(int val, int runningVal) {
if (val == 1) {
return runningVal;
} else {
return factorial(val - 1, runningVal * val);
}
}
After the quick-fix is applied:
int factorial(int val, int runningVal) {
while (true) {
if (val == 1) {
return runningVal;
} else {
runningVal = runningVal * val;
val = val - 1;
}
}
}
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.
TailRecursion- 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.
Availability
- By default bundled with
- Can be installed with plugin
Java, 241.18072
Last modified: 18 June 2024