~pali/llvm/clang-tools-extra-3.9

« back to all changes in this revision

Viewing changes to unittests/include-fixer/IncludeFixerTest.cpp

  • Committer: hokein
  • Date: 2016-07-13 16:43:54 UTC
  • Revision ID: svn-v4:91177308-0d34-0410-b5e6-96231b3b80d8:clang-tools-extra/trunk:275279
[include-fixer] Implement adding missing namespace qualifiers in vim integration.

Summary:
The patch extends include-fixer's "-output-headers", and "-insert-headers"
command line options to make it dump more information (e.g. QualifiedSymbol),
so that vim-integration can add missing qualifiers.

Reviewers: bkramer

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D22299

Show diffs side-by-side

added added

removed removed

Lines of Context:
84
84
 
85
85
  std::string FakeFileName = "input.cc";
86
86
  runOnCode(&Factory, Code, FakeFileName, ExtraArgs);
87
 
  if (FixerContext.getMatchedSymbols().empty())
 
87
  if (FixerContext.getHeaderInfos().empty())
88
88
    return Code;
89
89
  auto Replaces = clang::include_fixer::createInsertHeaderReplacements(
90
 
      Code, FakeFileName, FixerContext.getHeaders().front());
 
90
      Code, FakeFileName, FixerContext.getHeaderInfos().front().Header);
91
91
  EXPECT_TRUE(static_cast<bool>(Replaces))
92
92
      << llvm::toString(Replaces.takeError()) << "\n";
93
93
  if (!Replaces)
94
94
    return "";
95
95
  clang::RewriterTestContext Context;
96
96
  clang::FileID ID = Context.createInMemoryFile(FakeFileName, Code);
97
 
  if (FixerContext.getSymbolRange().getLength() > 0)
98
 
    Replaces->insert(FixerContext.createSymbolReplacement(FakeFileName, 0));
 
97
  Replaces->insert({FakeFileName, FixerContext.getSymbolRange().getOffset(),
 
98
                    FixerContext.getSymbolRange().getLength(),
 
99
                    FixerContext.getHeaderInfos().front().QualifiedName});
99
100
  clang::tooling::applyAllReplacements(*Replaces, Context.Rewrite);
100
101
  return Context.getRewrittenText(ID);
101
102
}