diff options
author | Douglas Gregor <dgregor@apple.com> | 2013-01-30 07:11:43 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2013-01-30 07:11:43 +0000 |
commit | 31aa57715090f29f9ad67e2e5c1fb528fc633563 (patch) | |
tree | 05cc236ffe16c088a17880e5b5519cfc5500ddb6 | |
parent | 5824b803bb964247d2633ae893af409f915c80b1 (diff) |
Add "instancetype" as a code completion result for the return type of
an Objective-C method. Fixes <rdar://problem/13069990>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173905 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/SemaCodeComplete.cpp | 5 | ||||
-rw-r--r-- | test/Index/complete-declarators.m | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp index 48d1b61cd3..0bd73f3c23 100644 --- a/lib/Sema/SemaCodeComplete.cpp +++ b/lib/Sema/SemaCodeComplete.cpp @@ -4966,6 +4966,11 @@ void Sema::CodeCompleteObjCPassingType(Scope *S, ObjCDeclSpec &DS, Builder.AddTextChunk("sender"); Results.AddResult(CodeCompletionResult(Builder.TakeString())); } + + // If we're completing the return type, provide 'instancetype'. + if (!IsParameter) { + Results.AddResult(CodeCompletionResult("instancetype")); + } // Add various builtin type names and specifiers. AddOrdinaryNameResults(PCC_Type, S, *this, Results); diff --git a/test/Index/complete-declarators.m b/test/Index/complete-declarators.m index 071df601b9..d42a3c7a6c 100644 --- a/test/Index/complete-declarators.m +++ b/test/Index/complete-declarators.m @@ -24,6 +24,17 @@ } @end +// RUN: c-index-test -code-completion-at=%s:7:4 %s | FileCheck -check-prefix=CHECK-CC0 %s +// CHECK-CC0: NotImplemented:{TypedText IBAction}{RightParen )}{Placeholder selector}{Colon :}{LeftParen (}{Text id}{RightParen )}{Text sender} (40) +// CHECK-CC0: macro definition:{TypedText IBAction} (70) +// CHECK-CC0: macro definition:{TypedText IBOutlet} (70) +// CHECK-CC0: macro definition:{TypedText IBOutletCollection}{LeftParen (}{Placeholder ClassName}{RightParen )} (70) +// CHECK-CC0: TypedefDecl:{TypedText id} (50) +// CHECK-CC0: NotImplemented:{TypedText in} (40) +// CHECK-CC0: NotImplemented:{TypedText inout} (40) +// CHECK-CC0: NotImplemented:{TypedText instancetype} (40) +// CHECK-CC0: NotImplemented:{TypedText int} (50) +// CHECK-CC0: NotImplemented:{TypedText long} (50) // RUN: c-index-test -code-completion-at=%s:7:19 %s | FileCheck -check-prefix=CHECK-CC1 %s // CHECK-CC1-NOT: NotImplemented:{TypedText extern} (40) // CHECK-CC1: NotImplemented:{TypedText param1} (40) |