export function isEqualExtendedTypes()

in src/powerquery-parser/language/type/typeUtils/isEqualType.ts [66:122]


export function isEqualExtendedTypes(left: Type.TExtendedType, right: Type.TExtendedType): boolean {
    if (left === right) {
        return true;
    } else if (left.maybeExtendedKind !== right.maybeExtendedKind) {
        return false;
    }

    switch (left.maybeExtendedKind) {
        case Type.ExtendedTypeKind.AnyUnion:
            return isEqualAnyUnion(left, right as Type.AnyUnion);

        case Type.ExtendedTypeKind.DefinedFunction:
            return isEqualDefinedFunction(left, right as Type.DefinedFunction);

        case Type.ExtendedTypeKind.DefinedList:
            return isEqualDefinedList(left, right as Type.DefinedList);

        case Type.ExtendedTypeKind.DefinedListType:
            return isEqualDefinedListType(left, right as Type.DefinedListType);

        case Type.ExtendedTypeKind.DefinedRecord:
            return isEqualDefinedRecord(left, right as Type.DefinedRecord);

        case Type.ExtendedTypeKind.DefinedTable:
            return isEqualDefinedTable(left, right as Type.DefinedTable);

        case Type.ExtendedTypeKind.FunctionType:
            return isEqualFunctionType(left, right as Type.FunctionType);

        case Type.ExtendedTypeKind.ListType:
            return isEqualListType(left, right as Type.ListType);

        case Type.ExtendedTypeKind.LogicalLiteral:
            return isEqualLogicalLiteral(left, right as Type.LogicalLiteral);

        case Type.ExtendedTypeKind.NumberLiteral:
            return isEqualNumberLiteral(left, right as Type.NumberLiteral);

        case Type.ExtendedTypeKind.PrimaryPrimitiveType:
            return isEqualPrimaryPrimitiveType(left, right as Type.PrimaryPrimitiveType);

        case Type.ExtendedTypeKind.RecordType:
            return isEqualRecordType(left, right as Type.RecordType);

        case Type.ExtendedTypeKind.TableType:
            return isEqualTableType(left, right as Type.TableType);

        case Type.ExtendedTypeKind.TableTypePrimaryExpression:
            return isEqualTableTypePrimaryExpression(left, right as Type.TableTypePrimaryExpression);

        case Type.ExtendedTypeKind.TextLiteral:
            return isEqualTextLiteral(left, right as Type.TextLiteral);

        default:
            throw Assert.isNever(left);
    }
}