private void fillSuperClassesSwitchingToAst(@NotNull TypeEvalContext context, List<PyClassLikeType> result) {
    for (PyExpression expression : getUnfoldedSuperClassExpressions(this)) {
      final PyType type = context.getType(expression);
      PyClassLikeType classLikeType = null;
      if (type instanceof PyClassLikeType) {
        classLikeType = (PyClassLikeType)type;
      }
      else {
        final PyReferenceExpression referenceExpr = as(expression, PyReferenceExpression.class);
        final PsiElement resolved;
        if (referenceExpr != null) {
          resolved = referenceExpr.followAssignmentsChain(PyResolveContext.defaultContext(context)).getElement();
        }
        else {
          final PsiReference ref = expression.getReference();
          resolved = ref != null ? ref.resolve() : null;
        }
        if (resolved instanceof PyClass) {
          final PyType resolvedType = context.getType((PyClass)resolved);
          if (resolvedType instanceof PyClassLikeType) {
            classLikeType = (PyClassLikeType)resolvedType;
          }
        }
      }
      result.add(classLikeType);
    }
  }
private void fillSuperClassesSwitchingToAst(@NotNull TypeEvalContext context, List<PyClassLikeType> result)