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 */