[PATCH] D95365: [clangd] Add include-fixer fixit for no_member_template diagnostic.
Haojian Wu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 26 01:11:35 PST 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG68dbd1aefe5a: [clangd] Add include-fixer fixit for no_member_template diagnostic. (authored by hokein).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D95365/new/
https://reviews.llvm.org/D95365
Files:
clang-tools-extra/clangd/IncludeFixer.cpp
clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
Index: clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
===================================================================
--- clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
+++ clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
@@ -879,11 +879,13 @@
::$global[[Global]] glob;
}
+using Type = ns::$template[[Foo]]<int>;
)cpp");
auto TU = TestTU::withCode(Test.code());
auto Index = buildIndexWithSymbol(
{SymbolWithHeader{"ns::X", "unittest:///x.h", "\"x.h\""},
- SymbolWithHeader{"Global", "unittest:///global.h", "\"global.h\""}});
+ SymbolWithHeader{"Global", "unittest:///global.h", "\"global.h\""},
+ SymbolWithHeader{"ns::Foo", "unittest:///foo.h", "\"foo.h\""}});
TU.ExternalIndex = Index.get();
EXPECT_THAT(
@@ -908,7 +910,12 @@
"no type named 'Global' in the global namespace"),
DiagName("typename_nested_not_found"),
WithFix(Fix(Test.range("insert"), "#include \"global.h\"\n",
- "Add include \"global.h\" for symbol Global")))));
+ "Add include \"global.h\" for symbol Global"))),
+ AllOf(Diag(Test.range("template"),
+ "no template named 'Foo' in namespace 'ns'"),
+ DiagName("no_member_template"),
+ WithFix(Fix(Test.range("insert"), "#include \"foo.h\"\n",
+ "Add include \"foo.h\" for symbol ns::Foo")))));
}
TEST(IncludeFixerTest, MultipleMatchedSymbols) {
Index: clang-tools-extra/clangd/IncludeFixer.cpp
===================================================================
--- clang-tools-extra/clangd/IncludeFixer.cpp
+++ clang-tools-extra/clangd/IncludeFixer.cpp
@@ -100,6 +100,8 @@
case diag::err_undeclared_var_use_suggest:
case diag::err_no_member: // Could be no member in namespace.
case diag::err_no_member_suggest:
+ case diag::err_no_member_template:
+ case diag::err_no_member_template_suggest:
if (LastUnresolvedName) {
// Try to fix unresolved name caused by missing declaration.
// E.g.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95365.319235.patch
Type: text/x-patch
Size: 2118 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210126/788c3889/attachment.bin>
More information about the cfe-commits
mailing list