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);
}
}