diff options
-rw-r--r-- | clang-tools-extra/include-fixer/IncludeFixer.cpp | 4 | ||||
-rw-r--r-- | clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/clang-tools-extra/include-fixer/IncludeFixer.cpp b/clang-tools-extra/include-fixer/IncludeFixer.cpp index 20683e0c1f9..ad3f8e9d37b 100644 --- a/clang-tools-extra/include-fixer/IncludeFixer.cpp +++ b/clang-tools-extra/include-fixer/IncludeFixer.cpp @@ -153,8 +153,8 @@ bool IncludeFixerSemaSource::MaybeDiagnoseMissingCompleteType( return false; clang::ASTContext &context = CI->getASTContext(); - std::string QueryString = - T.getUnqualifiedType().getAsString(context.getPrintingPolicy()); + std::string QueryString = QualType(T->getUnqualifiedDesugaredType(), 0) + .getAsString(context.getPrintingPolicy()); DEBUG(llvm::dbgs() << "Query missing complete type '" << QueryString << "'"); // Pass an empty range here since we don't add qualifier in this case. std::vector<find_all_symbols::SymbolInfo> MatchedSymbols = diff --git a/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp b/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp index 756c2586283..c7737c82d6c 100644 --- a/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp +++ b/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp @@ -136,6 +136,10 @@ TEST(IncludeFixer, IncompleteType) { "namespace std {\nclass string;\n}\nstd::string foo;\n", runIncludeFixer("#include \"foo.h\"\n" "namespace std {\nclass string;\n}\nstring foo;\n")); + + EXPECT_EQ("#include <string>\n" + "class string;\ntypedef string foo;\nfoo f;\n", + runIncludeFixer("class string;\ntypedef string foo;\nfoo f;\n")); } TEST(IncludeFixer, MinimizeInclude) { |