@NotNull
  private static List<GrMethod> getChainedConstructors(@NotNull GrMethod constructor) {
    Set<Object> visited = new HashSet<>();
    List<GrMethod> result = new SmartList<>(constructor);
    while (true) {
      final GrConstructorInvocation invocation = PsiUtil.getConstructorInvocation(constructor);
      if (invocation != null && invocation.isThisCall()) {
        final PsiMethod method = invocation.resolveMethod();
        if (method != null && method.isConstructor() && visited.add(method)) {
          result.add((GrMethod)method);
          constructor = (GrMethod)method;
          continue;
        }
      }
      return result;
    }
  }
@NotNull
  private static List<GrMethod> getChainedConstructors(@NotNull GrMethod constructor)