summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseObjc.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2015-07-07 06:20:36 +0000
committerDouglas Gregor <dgregor@apple.com>2015-07-07 06:20:36 +0000
commitcedcd9f860d7f3cfe57f15e88efd731197e88606 (patch)
treeadac30df585767758dd245b104b0938c4897a503 /clang/lib/Parse/ParseObjc.cpp
parent7fa93c77303e408aa3fad7a9e3cc43849ce021ce (diff)
downloadbcm5719-llvm-cedcd9f860d7f3cfe57f15e88efd731197e88606.tar.gz
bcm5719-llvm-cedcd9f860d7f3cfe57f15e88efd731197e88606.zip
[libclang] Implement proper code-completion in an ObjC type parameter position.
rdar://19670303 llvm-svn: 241561
Diffstat (limited to 'clang/lib/Parse/ParseObjc.cpp')
-rw-r--r--clang/lib/Parse/ParseObjc.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/clang/lib/Parse/ParseObjc.cpp b/clang/lib/Parse/ParseObjc.cpp
index 4f16d47dfa7..ed6090453da 100644
--- a/clang/lib/Parse/ParseObjc.cpp
+++ b/clang/lib/Parse/ParseObjc.cpp
@@ -1658,8 +1658,13 @@ void Parser::parseObjCTypeArgsOrProtocolQualifiers(
identifierLocs[i]));
}
- Actions.CodeCompleteObjCProtocolReferences(identifierLocPairs.data(),
- identifierLocPairs.size());
+ QualType BaseT = Actions.GetTypeFromParser(baseType);
+ if (!BaseT.isNull() && BaseT->acceptsObjCTypeParams()) {
+ Actions.CodeCompleteOrdinaryName(getCurScope(), Sema::PCC_Type);
+ } else {
+ Actions.CodeCompleteObjCProtocolReferences(identifierLocPairs.data(),
+ identifierLocPairs.size());
+ }
cutOffParsing();
return;
}
OpenPOWER on IntegriCloud