forked from OSchip/llvm-project
Tweak code completions for Objective-C Key-Value Observing. The
+keyPathsForValuesAffecting<Key> completion was mislabeled as an instance method, and +automaticallyNotifiesObserversOf<Key> was missing entirely. Fixes <rdar://problem/9516762>. llvm-svn: 132452
This commit is contained in:
parent
d6860522b2
commit
857bcdaf03
|
@ -6188,7 +6188,28 @@ static void AddObjCKeyValueCompletions(ObjCPropertyDecl *Property,
|
|||
|
||||
Builder.AddTypedTextChunk(Allocator.CopyString(SelectorName));
|
||||
Results.AddResult(Result(Builder.TakeString(), CCP_CodePattern,
|
||||
CXCursor_ObjCInstanceMethodDecl));
|
||||
CXCursor_ObjCClassMethodDecl));
|
||||
}
|
||||
}
|
||||
|
||||
// + (BOOL)automaticallyNotifiesObserversForKey
|
||||
if (!IsInstanceMethod &&
|
||||
(ReturnType.isNull() ||
|
||||
ReturnType->isIntegerType() ||
|
||||
ReturnType->isBooleanType())) {
|
||||
std::string SelectorName
|
||||
= (llvm::Twine("automaticallyNotifiesObserversOf") + UpperKey).str();
|
||||
IdentifierInfo *SelectorId = &Context.Idents.get(SelectorName);
|
||||
if (KnownSelectors.insert(Selectors.getNullarySelector(SelectorId))) {
|
||||
if (ReturnType.isNull()) {
|
||||
Builder.AddChunk(CodeCompletionString::CK_LeftParen);
|
||||
Builder.AddTextChunk("BOOL");
|
||||
Builder.AddChunk(CodeCompletionString::CK_RightParen);
|
||||
}
|
||||
|
||||
Builder.AddTypedTextChunk(Allocator.CopyString(SelectorName));
|
||||
Results.AddResult(Result(Builder.TakeString(), CCP_CodePattern,
|
||||
CXCursor_ObjCClassMethodDecl));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -95,7 +95,9 @@ typedef signed char BOOL;
|
|||
// CHECK-CC1: ObjCInstanceMethodDecl:{LeftParen (}{Text void}{RightParen )}{TypedText replaceObjectInMySetPropertyAtIndex:}{LeftParen (}{Placeholder NSUInteger}{RightParen )}{Text index}{HorizontalSpace }{TypedText withObject:}{LeftParen (}{Text id}{RightParen )}{Text object} (55)
|
||||
|
||||
// RUN: c-index-test -code-completion-at=%s:41:3 %s | FileCheck -check-prefix=CHECK-CC2 %s
|
||||
// CHECK-CC2: ObjCInstanceMethodDecl:{LeftParen (}{Text NSSet *}{RightParen )}{TypedText keyPathsForValuesAffectingMutableArrayProperty} (40)
|
||||
// CHECK-CC2: ObjCClassMethodDecl:{LeftParen (}{Text BOOL}{RightParen )}{TypedText automaticallyNotifiesObserversOfArrayProperty} (40)
|
||||
// CHECK-CC2: ObjCClassMethodDecl:{LeftParen (}{Text BOOL}{RightParen )}{TypedText automaticallyNotifiesObserversOfMutableArrayProperty} (40)
|
||||
// CHECK-CC2: ObjCClassMethodDecl:{LeftParen (}{Text NSSet *}{RightParen )}{TypedText keyPathsForValuesAffectingMutableArrayProperty} (40)
|
||||
|
||||
// RUN: c-index-test -code-completion-at=%s:52:8 %s | FileCheck -check-prefix=CHECK-CC3 %s
|
||||
// CHECK-CC3: ObjCInstanceMethodDecl:{TypedText countOfIntProperty} (55)
|
||||
|
|
Loading…
Reference in New Issue