@Nullable
  @Override
  public List<? extends RatedResolveResult> resolveMember(@NotNull final String name,
                                                          @Nullable PyExpression location,
                                                          @NotNull AccessDirection direction,
                                                          @NotNull PyResolveContext resolveContext,
                                                          boolean inherited) {
    return RecursionManager.doPreventingRecursion(
      resolveContext.allowProperties()
      ? Arrays.asList(this, name, location, direction, resolveContext)
      : Arrays.asList(this, name, location, resolveContext),
      false,
      () -> doResolveMember(name, location, direction, resolveContext, inherited)
    );
  }
@Nullable
  @Override
  public List<? extends RatedResolveResult> resolveMember(@NotNull final String name,
                                                          @Nullable PyExpression location,
                                                          @NotNull AccessDirection direction,
                                                          @NotNull PyResolveContext resolveContext,
                                                          boolean inherited)