diff options
author | Alex Lorenz <arphaman@gmail.com> | 2017-10-24 16:39:37 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2017-10-24 16:39:37 +0000 |
commit | b874042e325211d0a255b97490025a3d110ba18f (patch) | |
tree | ea842aa51695ab9f1d7fc635142a5b2dad88300e /clang/lib/Parse/Parser.cpp | |
parent | 1bc62f03a58616cb505805cf271f3bcee18d66eb (diff) | |
download | llvm-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.cpp | 12 |
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: |