JonasToth added a comment.

I like that check. But I think it could take another feature.
In my opinion it would be valueable to check if enums are compared against ints 
as well.

For example

  enum Kind k = Kind::a;
  if (k == 3) { /* something */ }

This usecase is not specially considered here, but i think that check would be 
the right place. Maybe it is already covered by your matcher, since you check 
for everything that compares against enums.
If yes, additional diagnostics would be nice.

This check should be added to the ReleaseNotes as well.



================
Comment at: clang-tools-extra/clang-tidy/misc/PreferSwitchForEnumsCheck.cpp:21
+void PreferSwitchForEnumsCheck::registerMatchers(MatchFinder *Finder) {
+  // FIXME: Add matchers.
+  Finder->addMatcher(
----------------
remove `FIXME`


================
Comment at: clang-tools-extra/clang-tidy/misc/PreferSwitchForEnumsCheck.cpp:27
+                     hasLHS(declRefExpr(hasDeclaration(enumConstantDecl()))))))
+          .bind("x"),
+      this);
----------------
maybe a more telling name than `x` would be better?


================
Comment at: clang-tools-extra/test/clang-tidy/misc-prefer-switch-for-enums.cpp:3
+
+enum class kind { a, b, c, d };
+
----------------
maybe another test for non enum class values would be nice.

```
enum another_kind {e, f, g};
```




Repository:
  rL LLVM

https://reviews.llvm.org/D30896



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to