static void visitConstructorChain(@NotNull PsiMethod entry, @NotNull ConstructorVisitorInfo info) {
    PsiMethod constructor = entry;
    while (true) {
      PsiMethodCallExpression methodCall = JavaPsiConstructorUtil.findThisOrSuperCallInConstructor(constructor);
      if (!JavaPsiConstructorUtil.isChainedConstructorCall(methodCall)) return;
      PsiMethod method = methodCall.resolveMethod();
      if (method == null) return;
      if (info.visitedConstructors != null && info.visitedConstructors.contains(method)) {
        info.recursivelyCalledConstructor = method;
        return;
      }
      if (info.visitedConstructors == null) info.visitedConstructors = new ArrayList<>(5);
      info.visitedConstructors.add(method);
      constructor = method;
    }
  }
static void visitConstructorChain(@NotNull PsiMethod entry, @NotNull ConstructorVisitorInfo info)