diff options
-rw-r--r-- | clang-tools-extra/clangd/IncludeFixer.cpp | 1 | ||||
-rw-r--r-- | clang-tools-extra/unittests/clangd/DiagnosticsTests.cpp | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/IncludeFixer.cpp b/clang-tools-extra/clangd/IncludeFixer.cpp index b04cf21a2d0..a90a846719b 100644 --- a/clang-tools-extra/clangd/IncludeFixer.cpp +++ b/clang-tools-extra/clangd/IncludeFixer.cpp @@ -67,6 +67,7 @@ std::vector<Fix> IncludeFixer::fix(DiagnosticsEngine::Level DiagLevel, case diag::err_incomplete_type: case diag::err_incomplete_member_access: case diag::err_incomplete_base_class: + case diag::err_incomplete_nested_name_spec: // Incomplete type diagnostics should have a QualType argument for the // incomplete type. for (unsigned Idx = 0; Idx < Info.getNumArgs(); ++Idx) { diff --git a/clang-tools-extra/unittests/clangd/DiagnosticsTests.cpp b/clang-tools-extra/unittests/clangd/DiagnosticsTests.cpp index f6f6de396ab..bbd94b80eea 100644 --- a/clang-tools-extra/unittests/clangd/DiagnosticsTests.cpp +++ b/clang-tools-extra/unittests/clangd/DiagnosticsTests.cpp @@ -311,6 +311,7 @@ TEST(IncludeFixerTest, IncompleteType) { Annotations Test(R"cpp( $insert[[]]namespace ns { class X; + $nested[[X::]]Nested n; } class Y : $base[[public ns::X]] {}; int main() { @@ -326,6 +327,10 @@ int main() { EXPECT_THAT( TU.build().getDiagnostics(), UnorderedElementsAre( + AllOf(Diag(Test.range("nested"), + "incomplete type 'ns::X' named in nested name specifier"), + WithFix(Fix(Test.range("insert"), "#include \"x.h\"\n", + "Add include \"x.h\" for symbol ns::X"))), AllOf(Diag(Test.range("base"), "base class has incomplete type"), WithFix(Fix(Test.range("insert"), "#include \"x.h\"\n", "Add include \"x.h\" for symbol ns::X"))), |