@Override
  @Nullable
  public PyClassLikeType getMetaClassType(boolean inherited, @NotNull TypeEvalContext context) {
    if (!inherited) {
      return as(getMetaClassType(context), PyClassLikeType.class);
    }
    final List<PyClassLikeType> metaClassTypes = getAllPossibleMetaClassTypes(context);
    final PyClassLikeType mostDerivedMeta = getMostDerivedClassType(metaClassTypes, context);
    return mostDerivedMeta != null ? mostDerivedMeta : PyBuiltinCache.getInstance(this).getObjectType("type");
  }
@Override
  @Nullable
  public PyClassLikeType getMetaClassType(boolean inherited, @NotNull TypeEvalContext context)