aaron.ballman added a comment.

Public-facing documentation should also be updated to specify the new option 
for the various checkers.


================
Comment at: clang-tidy/ClangTidy.h:55
@@ +54,3 @@
+  /// Reads the option with the check-local name \p LocalName from local or
+  /// global \c CheckOptions. If the option is not present in both options,
+  /// returns Default.
----------------
"in both options" -> "in either list"

================
Comment at: clang-tidy/ClangTidy.h:57
@@ +56,3 @@
+  /// returns Default.
+  std::string getLocalOrGlobal(StringRef LocalName, std::string Default) const;
+
----------------
Any reason for Default to not be a `StringRef` (I assume this is always going 
to be a hard-coded string literal in callers)? At the very least, it should be 
a `const std::string &`.

================
Comment at: clang-tidy/ClangTidyOptions.cpp:269
@@ +268,3 @@
+  SmallVector<llvm::StringRef, 5> Suffixes;
+  HeaderFileExtensions.split(Suffixes, ',');
+  for (const auto& Suffix : Suffixes) {
----------------
This code seems like it will fail if there are spaces in the extension list, 
like `.h, .hxx` instead of `.h,.hxx`. I think the list, as given by the end 
user, should be processed into a vector of sorts so that things can be 
normalized (entries without a period can be diagnosed, spaces removed, etc).

================
Comment at: clang-tidy/ClangTidyOptions.cpp:270
@@ +269,3 @@
+  HeaderFileExtensions.split(Suffixes, ',');
+  for (const auto& Suffix : Suffixes) {
+    if (Suffix.empty() && llvm::sys::path::extension(Filename).empty())
----------------
clang-format the patch.

================
Comment at: clang-tidy/ClangTidyOptions.h:216
@@ +215,3 @@
+/// HeaderFileExtensions.
+bool endWithHeaderFileExtensions(llvm::StringRef FileName,
+                                 llvm::StringRef HeaderFileExtensions);
----------------
endsWithHeaderFileExtension instead? However, given that uses of this all start 
with a SourceLocation, I wonder if that makes for a cleaner API: 
isLocInHeaderFile(SourceLocation, <Extensions>);

Also, how does this work if I want to include an extension-less file as the 
header file "extension?" It would be plausible if the extensions were passed in 
as a list, but as it stands it doesn't seem possible without weird conventions 
like leaving a blank in the list (e.g., `.h,,.hpp`), which seems error-prone.

Also, I'm not certain what I can pass in. The documentation should be updated 
to state whether these extensions are intended to include the ".".


Repository:
  rL LLVM

http://reviews.llvm.org/D16113



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

Reply via email to