[PATCH] D106431: [clang-tidy] Fix cppcoreguidelines-init-variables with enum judgement
Whisperity via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 22 06:12:55 PDT 2021
whisperity added a comment.
The problem with enums is that translating //zero// (0, 0.0, nullptr, etc...) to the enum case is not always apparent. A warning **should** always be given. And //if// you can find a zero member in the enum, we can report an automated suggestion for that.
To give an example
enum class BaseColour { BLACK, RED, GREEN, BLUE, WHITE };
`BLACK` is the `0`, so we can fix-it. If the `0` is the first member (usually in enums that have a well-defined "default" or "None" case...), then, it is alright to use that as the automated fix.
However, if there isn't a "zero case" in the enum, for example:
enum class Something {
FOO = -2,
BAR, // This will be -1
BAZ = 84,
QUX // This will be 85
};
then simply using the first member might not be the best fitting action, so in such case, I would opt for //no FixIt//. But, obviously, yes for giving a warning.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106431/new/
https://reviews.llvm.org/D106431
More information about the cfe-commits
mailing list