diff options
author | Alex Lorenz <arphaman@gmail.com> | 2017-11-14 01:46:24 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2017-11-14 01:46:24 +0000 |
commit | f3df1f7bf1bc23aa9f521107c69922e4a9503881 (patch) | |
tree | 19398f67050d8a08c1b27555b588dd2cdcdb9edc /clang/lib/Frontend | |
parent | 00a301d56897719fb5674d6e24e054775b8bbfa7 (diff) | |
download | bcm5719-llvm-f3df1f7bf1bc23aa9f521107c69922e4a9503881.tar.gz bcm5719-llvm-f3df1f7bf1bc23aa9f521107c69922e4a9503881.zip |
[completion] complete ObjC interface names in an expression
Objective-C interfaces can be used in a class property expression.
rdar://26982192
llvm-svn: 318129
Diffstat (limited to 'clang/lib/Frontend')
-rw-r--r-- | clang/lib/Frontend/ASTUnit.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp index 9eeec37a758..c69d3676de6 100644 --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -264,8 +264,12 @@ static unsigned getDeclShowContexts(const NamedDecl *ND, Contexts |= (1LL << CodeCompletionContext::CCC_ObjCMessageReceiver); // In Objective-C, you can only be a subclass of another Objective-C class - if (isa<ObjCInterfaceDecl>(ND)) + if (const auto *ID = dyn_cast<ObjCInterfaceDecl>(ND)) { + // Objective-C interfaces can be used in a class property expression. + if (ID->getDefinition()) + Contexts |= (1LL << CodeCompletionContext::CCC_Expression); Contexts |= (1LL << CodeCompletionContext::CCC_ObjCInterfaceName); + } // Deal with tag names. if (isa<EnumDecl>(ND)) { |