private static boolean selfParameterMatchesReceiver(@NotNull PyFunction method,
                                                      @NotNull PyType receiverType,
                                                      @NotNull TypeEvalContext context) {
    List<PyCallableParameter> parameters = method.getParameters(context);
    if (parameters.isEmpty()) return false;
    PyCallableParameter firstParameter = parameters.get(0);
    if (!firstParameter.isSelf()) return false;
    PyType selfParameterType = firstParameter.getType(context);
    return PyTypeChecker.match(selfParameterType, receiverType, context);
  }
private static boolean selfParameterMatchesReceiver(@NotNull PyFunction method,
                                                      @NotNull PyType receiverType,
                                                      @NotNull TypeEvalContext context)