mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-29 03:16:07 +00:00

- Merge pairs like `eFormatCategoryItemSummary` and `eFormatCategoryItemRegexSummary` into a single value. See explanation below. - Rename `eFormatCategoryItemValue` to `eFormatCategoryItemFormat`. This makes the enum match the names used elsewhere for formatter kinds (format, summary, filter, synth). - Delete unused values `eFormatCategoryItemValidator` and `eFormatCategoryItemRegexValidator`. This enum is only used to reuse some code in CommandObjectType.cpp. For example, instead of having separate implementations for `type summary delete`, `type format delete`, and so on, there's a single generic implementation that takes an enum value, and then the specific commands derive from it and set the right flags for the specific kind of formatter. Even though the enum distinguishes between regular and regex matches for every kind of formatter, this distinction is never used: enum values are always specified in pairs like `eFormatCategoryItemSummary | eFormatCategoryItemRegexSummary`. This causes some ugly code duplication in TypeCategory.cpp. In order to handle every flag combination some code appears 8 times: {format, summary, synth, filter} x {exact, regex} Differential Revision: https://reviews.llvm.org/D134244