Detects loops whose second and the subsequent iterations do not produce any additional side effects other than produced by the first iteration, which could indicate a programming error. Such loops may iterate only zero, one or infinite number of times. If infinite number of times case is unreachable, such loop could be replaced with if statement. Otherwise there's a danger that the program could stuck. Example:
  int suffix = 1;
  String name = baseName;
  while(names.contains(name)) {
    name = baseName + suffix; // error: suffix is not updated making loop body idempotent
  }

New in 2018.1