function createCategory()

in src/powerquery-parser/language/type/typeUtils/categorize.ts [553:621]


function createCategory(type: Type.TPowerQueryType): TCategory {
    switch (type.kind) {
        case Type.TypeKind.Action:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.Any:
            return createCategoryForAny(type);

        case Type.TypeKind.AnyNonNull:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.Binary:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.Date:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.DateTime:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.DateTimeZone:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.Duration:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.Function:
            return createCategoryForFunction(type);

        case Type.TypeKind.List:
            return createCategoryForList(type);

        case Type.TypeKind.Logical:
            return createCategoryForLogical(type);

        case Type.TypeKind.None:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.NotApplicable:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.Null:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.Number:
            return createCategoryForNumber(type);

        case Type.TypeKind.Record:
            return createCategoryForRecord(type);

        case Type.TypeKind.Table:
            return createCategoryForTable(type);

        case Type.TypeKind.Text:
            return createCategoryForText(type);

        case Type.TypeKind.Time:
            return createCategoryForPrimitive(type);

        case Type.TypeKind.Type:
            return createCategoryForType(type);

        case Type.TypeKind.Unknown:
            return createCategoryForPrimitive(type);

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