Fixed false positive "metaclass conflict" error that occurs when the metaclass has an unknown class type in its class hierarchy.

This commit is contained in:
Eric Traut 2021-03-06 21:01:06 -08:00
parent f228068e3b
commit d641c9230e

View File

@ -11444,11 +11444,11 @@ export function createTypeEvaluator(
if (!effectiveMetaclass) {
effectiveMetaclass = baseClassMeta;
} else if (
derivesFromClassRecursive(baseClassMeta, effectiveMetaclass, /* ignoreUnknown */ true)
derivesFromClassRecursive(baseClassMeta, effectiveMetaclass, /* ignoreUnknown */ false)
) {
effectiveMetaclass = baseClassMeta;
} else if (
!derivesFromClassRecursive(effectiveMetaclass, baseClassMeta, /* ignoreUnknown */ true)
!derivesFromClassRecursive(effectiveMetaclass, baseClassMeta, /* ignoreUnknown */ false)
) {
if (!reportedMetaclassConflict) {
addDiagnostic(