mirror of https://github.com/microsoft/clang.git
[CodeCompletion] Autocomplete NS_DESIGNATED_INITIALIZER in initializers
with arguments rdar://21014571 Differential Revision: https://reviews.llvm.org/D27039 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@290879 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
be92cc306b
commit
89407989e8
|
@ -7471,6 +7471,23 @@ void Sema::CodeCompleteObjCMethodDeclSelector(Scope *S,
|
|||
}
|
||||
|
||||
Results.ExitScope();
|
||||
|
||||
if (!AtParameterName && !SelIdents.empty() &&
|
||||
SelIdents.front()->getName().startswith("init")) {
|
||||
for (const auto &M : PP.macros()) {
|
||||
if (M.first->getName() != "NS_DESIGNATED_INITIALIZER")
|
||||
continue;
|
||||
Results.EnterNewScope();
|
||||
CodeCompletionBuilder Builder(Results.getAllocator(),
|
||||
Results.getCodeCompletionTUInfo());
|
||||
Builder.AddTypedTextChunk(
|
||||
Builder.getAllocator().CopyString(M.first->getName()));
|
||||
Results.AddResult(CodeCompletionResult(Builder.TakeString(), CCP_Macro,
|
||||
CXCursor_MacroDefinition));
|
||||
Results.ExitScope();
|
||||
}
|
||||
}
|
||||
|
||||
HandleCodeCompleteResults(this, CodeCompleter,
|
||||
CodeCompletionContext::CCC_Other,
|
||||
Results.data(),Results.size());
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
// Note: the run lines follow their respective tests, since line/column
|
||||
// matter in this test.
|
||||
|
||||
// rdar://21014571
|
||||
|
||||
#define NS_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
|
||||
|
||||
@interface DesignatedInitializerCompletion
|
||||
|
||||
- (instancetype)init ;
|
||||
- (instancetype)initWithFoo:(int)foo ;
|
||||
- (instancetype)initWithX:(int)x andY:(int)y ;
|
||||
|
||||
@end
|
||||
|
||||
@implementation DesignatedInitializerCompletion
|
||||
|
||||
- (instancetype)init {
|
||||
}
|
||||
|
||||
- (instancetype)initWithFoo:(int)foo {
|
||||
}
|
||||
|
||||
- (instancetype)initWithX:(int)x andY:(int)y {
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
// RUN: c-index-test -code-completion-at=%s:10:22 %s | FileCheck %s
|
||||
// RUN: c-index-test -code-completion-at=%s:11:38 %s | FileCheck %s
|
||||
// RUN: c-index-test -code-completion-at=%s:11:29 %s | FileCheck -check-prefix=CHECK-NONE %s
|
||||
// RUN: c-index-test -code-completion-at=%s:11:34 %s | FileCheck -check-prefix=CHECK-NONE %s
|
||||
// RUN: c-index-test -code-completion-at=%s:12:34 %s | FileCheck %s
|
||||
// RUN: c-index-test -code-completion-at=%s:12:46 %s | FileCheck %s
|
||||
|
||||
// RUN: c-index-test -code-completion-at=%s:18:22 %s | FileCheck %s
|
||||
// RUN: c-index-test -code-completion-at=%s:21:38 %s | FileCheck %s
|
||||
// RUN: c-index-test -code-completion-at=%s:24:34 %s | FileCheck %s
|
||||
// RUN: c-index-test -code-completion-at=%s:24:46 %s | FileCheck %s
|
||||
|
||||
// CHECK: macro definition:{TypedText NS_DESIGNATED_INITIALIZER} (70)
|
||||
|
||||
// CHECK-NONE-NOT: NS_DESIGNATED_INITIALIZER
|
Loading…
Reference in New Issue