@NotNull
  private static List<PyType> getTypesFromConstructorArguments(@NotNull TypeEvalContext context,
                                                               @NotNull List<PyExpression> arguments) {
    List<PyType> argumentTypes = new ArrayList<>();
    final PyExpression arg = ContainerUtil.getFirstItem(arguments);
    if (arg != null) {
      PyType type = context.getType(arg);
      if (type instanceof PyCollectionType) {
        argumentTypes.addAll(((PyCollectionType)type).getElementTypes());
      }
      else {
        argumentTypes.add(type);
      }
    }
    return argumentTypes;
  }
@NotNull
  private static List<PyType> getTypesFromConstructorArguments(@NotNull TypeEvalContext context,
                                                               @NotNull List<PyExpression> arguments)