@Override
  public @NotNull PsiClassType getBaseClassType() {
    return CachedValuesManager.getCachedValue(this, () -> {
      PsiClassType[] refs = getExtendsList().getReferencedTypes();
      if (refs.length == 0) {
        refs = getImplementsList().getReferencedTypes();
      }
      return CachedValueProvider.Result.create(
        refs.length == 0 ? PsiType.getJavaLangObject(getManager(), getResolveScope()) : refs[0],
        this);
    });
  }
@Override
  public @NotNull PsiClassType getBaseClassType()