aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Parse/Parser.cpp
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2017-10-24 16:39:37 +0000
committerAlex Lorenz <arphaman@gmail.com>2017-10-24 16:39:37 +0000
commitb874042e325211d0a255b97490025a3d110ba18f (patch)
treeea842aa51695ab9f1d7fc635142a5b2dad88300e /clang/lib/Parse/Parser.cpp
parent1bc62f03a58616cb505805cf271f3bcee18d66eb (diff)
downloadllvm-b874042e325211d0a255b97490025a3d110ba18f.zip
llvm-b874042e325211d0a255b97490025a3d110ba18f.tar.gz
llvm-b874042e325211d0a255b97490025a3d110ba18f.tar.bz2
[code completion] Complete ObjC methods in @implementation without leading
'-'/'+' prefix rdar://12040840 llvm-svn: 316458
Diffstat (limited to 'clang/lib/Parse/Parser.cpp')
-rw-r--r--clang/lib/Parse/Parser.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp
index e24735d..0b07ba1 100644
--- a/clang/lib/Parse/Parser.cpp
+++ b/clang/lib/Parse/Parser.cpp
@@ -753,9 +753,15 @@ Parser::ParseExternalDeclaration(ParsedAttributesWithRange &attrs,
SingleDecl = ParseObjCMethodDefinition();
break;
case tok::code_completion:
- Actions.CodeCompleteOrdinaryName(getCurScope(),
- CurParsedObjCImpl? Sema::PCC_ObjCImplementation
- : Sema::PCC_Namespace);
+ if (CurParsedObjCImpl) {
+ // Code-complete Objective-C methods even without leading '-'/'+' prefix.
+ Actions.CodeCompleteObjCMethodDecl(getCurScope(),
+ /*IsInstanceMethod=*/None,
+ /*ReturnType=*/nullptr);
+ }
+ Actions.CodeCompleteOrdinaryName(
+ getCurScope(),
+ CurParsedObjCImpl ? Sema::PCC_ObjCImplementation : Sema::PCC_Namespace);
cutOffParsing();
return nullptr;
case tok::kw_export: