summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2018-11-12 12:39:35 +0100
committerNikolai Kosjar <nikolai.kosjar@qt.io>2018-11-14 07:38:19 +0000
commit5b12ada2dccb16324186bf1944d4541fb34c5783 (patch)
treec22b0fce023943c2b634351679755ea62ac7d532
parent1bbac68e5d1bd700450d33671a1444b227dd3f28 (diff)
downloadqt-creator-5b12ada2dccb16324186bf1944d4541fb34c5783.tar.gz
Clang: Fix completion icon for members in member init list
Change-Id: Ib02320dcf4de7cbb8ac6fbf29d1929edae77591a Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
-rw-r--r--src/tools/clangbackend/source/codecompletionsextractor.cpp1
-rw-r--r--tests/unit/unittest/codecompletionsextractor-test.cpp14
-rw-r--r--tests/unit/unittest/data/complete_extractor_constructorMemberInitialization.cpp5
3 files changed, 20 insertions, 0 deletions
diff --git a/src/tools/clangbackend/source/codecompletionsextractor.cpp b/src/tools/clangbackend/source/codecompletionsextractor.cpp
index b42520c7e5..065a589539 100644
--- a/src/tools/clangbackend/source/codecompletionsextractor.cpp
+++ b/src/tools/clangbackend/source/codecompletionsextractor.cpp
@@ -184,6 +184,7 @@ void CodeCompletionsExtractor::extractCompletionKind()
currentCodeCompletion_.completionKind = CodeCompletion::FunctionCompletionKind;
break;
case CXCursor_VariableRef:
+ case CXCursor_MemberRef:
case CXCursor_VarDecl:
case CXCursor_FieldDecl:
case CXCursor_ParmDecl:
diff --git a/tests/unit/unittest/codecompletionsextractor-test.cpp b/tests/unit/unittest/codecompletionsextractor-test.cpp
index 3e493ab44b..ae7559ce78 100644
--- a/tests/unit/unittest/codecompletionsextractor-test.cpp
+++ b/tests/unit/unittest/codecompletionsextractor-test.cpp
@@ -156,6 +156,7 @@ protected:
Document namespaceDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_namespace.cpp"), compilationArguments, {}, documents};
Document enumerationDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_enumeration.cpp"), compilationArguments, {}, documents};
Document constructorDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_constructor.cpp"), compilationArguments, {}, documents};
+ Document constructorMemberInitDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_constructorMemberInitialization.cpp"), compilationArguments, {}, documents};
Document briefCommentDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_brief_comment.cpp"), compilationArguments, {}, documents};
};
@@ -435,6 +436,19 @@ TEST_F(CodeCompletionsExtractorSlowTest, Constructor)
CodeCompletion::Available));
}
+TEST_F(CodeCompletionsExtractorSlowTest, ConstructorMemberInitializer) {
+ ClangCodeCompleteResults completeResults(getResults(constructorMemberInitDocument, 2, 18));
+
+ ::CodeCompletionsExtractor extractor(
+ unsavedFiles.unsavedFile(constructorDocument.filePath()),
+ completeResults.data());
+
+ ASSERT_THAT(extractor,
+ HasCompletion(Utf8StringLiteral("member"),
+ CodeCompletion::VariableCompletionKind,
+ CodeCompletion::Available));
+}
+
TEST_F(CodeCompletionsExtractorSlowTest, Destructor)
{
ClangCodeCompleteResults completeResults(getResults(constructorDocument, 20));
diff --git a/tests/unit/unittest/data/complete_extractor_constructorMemberInitialization.cpp b/tests/unit/unittest/data/complete_extractor_constructorMemberInitialization.cpp
new file mode 100644
index 0000000000..bbbe8ccfb8
--- /dev/null
+++ b/tests/unit/unittest/data/complete_extractor_constructorMemberInitialization.cpp
@@ -0,0 +1,5 @@
+class Constructor {
+ Constructor() : {}
+
+ int member;
+};