diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp
index cdd017a49b3..5f963b3fa0e 100644
--- a/src/plugins/clangcodemodel/test/clangdtests.cpp
+++ b/src/plugins/clangcodemodel/test/clangdtests.cpp
@@ -1431,7 +1431,8 @@ ClangdTestCompletion::ClangdTestCompletion()
"membercompletion-inside.cpp", "membercompletion-outside.cpp",
"noDotToArrowCorrectionForFloats.cpp",
"preprocessorKeywordsCompletion.cpp", "preprocessorKeywordsCompletion2.cpp",
- "preprocessorKeywordsCompletion3.cpp", "signalCompletion.cpp"});
+ "preprocessorKeywordsCompletion3.cpp", "privateFuncDefCompletion.cpp",
+ "signalCompletion.cpp"});
}
void ClangdTestCompletion::initTestCase()
@@ -1664,6 +1665,18 @@ void ClangdTestCompletion::testCompleteClassAndConstructor()
QCOMPARE(manipulator.skipPos(), -1);
}
+void ClangdTestCompletion::testCompletePrivateFunctionDefinition()
+{
+ ProposalModelPtr proposal;
+ getProposal("privateFuncDefCompletion.cpp", proposal);
+
+ QVERIFY(proposal);
+ QEXPECT_FAIL("", "FIXME: clangd needs to differentiate "
+ "between function call and function definiton", Abort);
+ QCOMPARE(proposal->size(), 1);
+ QVERIFY(hasItem(proposal, " theFunc()"));
+}
+
void ClangdTestCompletion::testCompleteWithDotToArrowCorrection()
{
ProposalModelPtr proposal;
diff --git a/src/plugins/clangcodemodel/test/clangdtests.h b/src/plugins/clangcodemodel/test/clangdtests.h
index b73f863752e..b6399a9c59f 100644
--- a/src/plugins/clangcodemodel/test/clangdtests.h
+++ b/src/plugins/clangcodemodel/test/clangdtests.h
@@ -169,6 +169,7 @@ private slots:
void testFunctionHintsFiltered();
void testFunctionHintConstructor();
void testCompleteClassAndConstructor();
+ void testCompletePrivateFunctionDefinition();
void testCompleteWithDotToArrowCorrection();
void testDontCompleteWithDotToArrowCorrectionForFloats();
diff --git a/src/plugins/clangcodemodel/test/data/clangtestdata.qrc b/src/plugins/clangcodemodel/test/data/clangtestdata.qrc
index 26b73373fcb..b006e3832ff 100644
--- a/src/plugins/clangcodemodel/test/data/clangtestdata.qrc
+++ b/src/plugins/clangcodemodel/test/data/clangtestdata.qrc
@@ -53,5 +53,6 @@
completion/functionAddress.cpp
completion/preprocessorKeywordsCompletion2.cpp
completion/preprocessorKeywordsCompletion3.cpp
+ completion/privateFuncDefCompletion.cpp
diff --git a/src/plugins/clangcodemodel/test/data/completion/completion.pro b/src/plugins/clangcodemodel/test/data/completion/completion.pro
index 03eff0bd309..da641f22378 100644
--- a/src/plugins/clangcodemodel/test/data/completion/completion.pro
+++ b/src/plugins/clangcodemodel/test/data/completion/completion.pro
@@ -24,6 +24,7 @@ SOURCES = \
preprocessorKeywordsCompletion.cpp \
preprocessorKeywordsCompletion2.cpp \
preprocessorKeywordsCompletion3.cpp \
+ privateFuncDefCompletion.cpp \
signalCompletion.cpp
HEADERS = mainwindow.h
diff --git a/src/plugins/clangcodemodel/test/data/completion/privateFuncDefCompletion.cpp b/src/plugins/clangcodemodel/test/data/completion/privateFuncDefCompletion.cpp
new file mode 100644
index 00000000000..bbe7e1b49a4
--- /dev/null
+++ b/src/plugins/clangcodemodel/test/data/completion/privateFuncDefCompletion.cpp
@@ -0,0 +1,5 @@
+class MyClass {
+ void theFunc();
+};
+
+void MyClass::the /* COMPLETE HERE */