[PATCH] D20809: [include-fixer] Show better messages on unfound symbols.

Haojian Wu via cfe-commits cfe-commits at lists.llvm.org
Tue May 31 04:52:53 PDT 2016


hokein updated this revision to Diff 59042.
hokein added a comment.

Rebase


http://reviews.llvm.org/D20809

Files:
  include-fixer/IncludeFixer.cpp
  include-fixer/IncludeFixerContext.h
  include-fixer/tool/ClangIncludeFixer.cpp
  include-fixer/tool/clang-include-fixer.py

Index: include-fixer/tool/clang-include-fixer.py
===================================================================
--- include-fixer/tool/clang-include-fixer.py
+++ include-fixer/tool/clang-include-fixer.py
@@ -78,8 +78,13 @@
              "-input="+args.input, vim.current.buffer.name]
   stdout, stderr = execute(command, text)
   lines = stdout.splitlines()
-  if len(lines) < 2:
-    print "No header is included.\n"
+
+  if len(lines) == 0:
+    print "The file is fine, no need to add a header.\n"
+    return;
+
+  if len(lines) == 1:
+    print "Couldn't find a header for {0}.\n".format(lines[0])
     return
 
   # The first line is the symbol name.
Index: include-fixer/tool/ClangIncludeFixer.cpp
===================================================================
--- include-fixer/tool/ClangIncludeFixer.cpp
+++ include-fixer/tool/ClangIncludeFixer.cpp
@@ -190,8 +190,10 @@
   }
 
   if (OutputHeaders) {
+    if (Context.SymbolIdentifier.empty())
+      return 0;
     // FIXME: Output IncludeFixerContext as YAML.
-    llvm::outs() << Context.SymbolIdentifer << "\n";
+    llvm::outs() << Context.SymbolIdentifier << "\n";
     for (const auto &Header : Context.Headers)
       llvm::outs() << Header << "\n";
     return 0;
Index: include-fixer/IncludeFixerContext.h
===================================================================
--- include-fixer/IncludeFixerContext.h
+++ include-fixer/IncludeFixerContext.h
@@ -19,7 +19,7 @@
 /// \brief A context for the symbol being queried.
 struct IncludeFixerContext {
   /// \brief The symbol name.
-  std::string SymbolIdentifer;
+  std::string SymbolIdentifier;
   /// \brief The headers which have SymbolIdentifier definitions.
   std::vector<std::string> Headers;
   /// \brief The insertion point for new include header.
Index: include-fixer/IncludeFixer.cpp
===================================================================
--- include-fixer/IncludeFixer.cpp
+++ include-fixer/IncludeFixer.cpp
@@ -241,10 +241,7 @@
   getIncludeFixerContext(const clang::SourceManager &SourceManager,
                          clang::HeaderSearch &HeaderSearch) {
     IncludeFixerContext FixerContext;
-    if (SymbolQueryResults.empty())
-      return FixerContext;
-
-    FixerContext.SymbolIdentifer = QuerySymbol;
+    FixerContext.SymbolIdentifier = QuerySymbol;
     FixerContext.FirstIncludeOffset = FirstIncludeOffset;
     for (const auto &Header : SymbolQueryResults)
       FixerContext.Headers.push_back(


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20809.59042.patch
Type: text/x-patch
Size: 2474 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160531/e0601a84/attachment.bin>


More information about the cfe-commits mailing list