alexfh requested changes to this revision.
alexfh added a comment.
This revision now requires changes to proceed.

A few more comments.



================
Comment at: clang-tidy/readability/OneNamePerDeclarationCheck.cpp:153
+  const SourceRange FVLoc(DeclStmt->getLocStart(), Location);
+  std::string UserWrittenType =
+      Lexer::getSourceText(CharSourceRange::getCharRange(FVLoc), SM,
----------------
I wonder whether re-lexing the whole range and working on tokens instead would 
be a better and more robust approach? You wouldn't have to deal with whitespace 
and comments then. What do you think?


================
Comment at: clang-tidy/readability/OneNamePerDeclarationCheck.cpp:163
+  // const int *&   -> const int
+  // long **        -> long int
+  size_t Pos = std::string::npos;
----------------
Why do we want `long int` and not `long`?


================
Comment at: clang-tidy/readability/OneNamePerDeclarationCheck.h:25
+class OneNamePerDeclarationCheck : public ClangTidyCheck {
+private:
+  std::string getUserWrittenType(const DeclStmt *DeclStmt, SourceManager &SM);
----------------
nit: move the private section to the end.


================
Comment at: clang-tidy/utils/LexerUtils.cpp:41-56
+  const auto &SM = Context.getSourceManager();
+  const auto &LO = Context.getLangOpts();
+  auto StartOfFile = SM.getLocForStartOfFile(SM.getFileID(Location));
+
+  Token CurrentToken;
+  CurrentToken.setKind(tok::unknown);
+
----------------
Is it significantly more efficient than

  Token Tok;
  do {
    Tok = getPreviousNonCommentToken(Context, Location);
  } while (!Tok.isOneOf(tok::unknown, TokenToFind));
  return Tok.getLocation();

?

If it's not, then this function might be not so much useful to be here. At 
least, its interface is rather specific to the use case you have. Why, for 
example, it returns a location instead of the token itself?


https://reviews.llvm.org/D27621



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

Reply via email to