PyClassLikeType (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"); }