alexfh added inline comments.

================
Comment at: clang-tidy/misc/StringIntegerAssignmentCheck.cpp:20
@@ +19,3 @@
+AST_MATCHER(QualType, isAnyCharacter) { return Node->isAnyCharacterType(); }
+} // namespace
+
----------------
I prefer `isAnyCharacter` for consistency with `isInteger`. I'd also suggest to 
move the matcher to ASTMatchers.h eventually.

================
Comment at: clang-tidy/misc/StringIntegerAssignmentCheck.cpp:47
@@ +46,3 @@
+      diag(Loc, "an integer is interpreted as a character code when assigning "
+                "it to a string; if this is intended, cast the integer to the "
+                "appropriate character type; if you want a string "
----------------
I'd suggest to still add fixits. The heuristics you suggest seems reasonable. 
Fine for a follow-up.

================
Comment at: docs/clang-tidy/checks/misc-string-integer-assignment.rst:2
@@ +1,3 @@
+misc-string-integer-assignment
+======================
+
----------------
nit: Please add more =s

================
Comment at: docs/clang-tidy/checks/misc-string-integer-assignment.rst:9
@@ +8,3 @@
+
+The source of the problem is that the numeric types can be implicity casted to 
most of the
+character types. It possible to assign an integer to ``basic_string``.
----------------
"The source of the problem" seems slightly confusing here (we didn't yet define 
"the problem"). I'd say slightly differently:

  The check finds assignments of an integer to ``std::basic_string<T>`` 
(``std::string``, ``std::wstring``, etc.). The source of the problem is the 
following assignment operator of ``std::basic_string``:

  .. code:: c++
    basic_string& operator=( CharT ch );

  and the fact that numeric types can be implicitly converted to most character 
types.

================
Comment at: test/clang-tidy/misc-string-integer-assignment.cpp:7
@@ +6,3 @@
+  basic_string(const T*) {}
+  basic_string& operator=(T) {
+    return *this;
----------------
I don't think the definitions of the methods are helpful here.

================
Comment at: test/clang-tidy/misc-string-integer-assignment.cpp:26
@@ +25,3 @@
+int main() {
+  std::string s{"foobar"};
+  std::wstring ws{L"foobar"};
----------------
Why do you need to initialize the strings?


http://reviews.llvm.org/D15411



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

Reply via email to