@NotNull
  private List<PyClassLikeType> doGetSuperClassTypes(@NotNull TypeEvalContext context) {
    final List<PyClassLikeType> result = new ArrayList<>();

    // In some cases stub may not provide all information, so we use stubs only if AST access id disabled
    if (!context.maySwitchToAST(this)) {
      fillSuperClassesNoSwitchToAst(context, getStub(), result);
    }
    else {
      fillSuperClassesSwitchingToAst(context, result);
    }

    PyPsiUtils.assertValid(this);
    if (result.isEmpty()) {
      return Optional
        .ofNullable(getImplicitSuper())
        .map(Collections::singletonList)
        .orElse(Collections.emptyList());
    }

    return result;
  }
@NotNull
  private List<PyClassLikeType> doGetSuperClassTypes(@NotNull TypeEvalContext context)