forked from OSchip/llvm-project
documentation parsing: when providing code completion comment
for a getter used in property-dot syntax, if geter has its own comment use it. // rdar://12791315 llvm-svn: 177797
This commit is contained in:
parent
4d96c8d714
commit
be8bc67b66
|
@ -2550,11 +2550,18 @@ CodeCompletionResult::CreateCodeCompletionString(ASTContext &Ctx,
|
||||||
if (M->isPropertyAccessor())
|
if (M->isPropertyAccessor())
|
||||||
if (const ObjCPropertyDecl *PDecl = M->findPropertyDecl())
|
if (const ObjCPropertyDecl *PDecl = M->findPropertyDecl())
|
||||||
if (PDecl->getGetterName() == M->getSelector() &&
|
if (PDecl->getGetterName() == M->getSelector() &&
|
||||||
PDecl->getIdentifier() != M->getIdentifier())
|
PDecl->getIdentifier() != M->getIdentifier()) {
|
||||||
if (const RawComment *RC = Ctx.getRawCommentForAnyRedecl(PDecl)) {
|
if (const RawComment *RC =
|
||||||
|
Ctx.getRawCommentForAnyRedecl(M)) {
|
||||||
Result.addBriefComment(RC->getBriefText(Ctx));
|
Result.addBriefComment(RC->getBriefText(Ctx));
|
||||||
Pattern->BriefComment = Result.getBriefComment();
|
Pattern->BriefComment = Result.getBriefComment();
|
||||||
}
|
}
|
||||||
|
else if (const RawComment *RC =
|
||||||
|
Ctx.getRawCommentForAnyRedecl(PDecl)) {
|
||||||
|
Result.addBriefComment(RC->getBriefText(Ctx));
|
||||||
|
Pattern->BriefComment = Result.getBriefComment();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Pattern;
|
return Pattern;
|
||||||
|
|
|
@ -70,3 +70,23 @@
|
||||||
|
|
||||||
// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:52:12 %s | FileCheck -check-prefix=CC6 %s
|
// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:52:12 %s | FileCheck -check-prefix=CC6 %s
|
||||||
// CHECK-CC6: {TypedText GetterInClassExtension}{{.*}}(brief comment: This is PropertyInClassExtension)
|
// CHECK-CC6: {TypedText GetterInClassExtension}{{.*}}(brief comment: This is PropertyInClassExtension)
|
||||||
|
|
||||||
|
@interface AnotherAppDelegate
|
||||||
|
/**
|
||||||
|
\brief This is ReadonlyProperty
|
||||||
|
*/
|
||||||
|
@property (getter = ReadonlyGetter) int MyProperty;
|
||||||
|
/**
|
||||||
|
\brief This is getter = ReadonlyGetter
|
||||||
|
*/
|
||||||
|
- (int) ReadonlyGetter;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation AnotherAppDelegate
|
||||||
|
- (int) PropertyInPrimaryClass {
|
||||||
|
self.ReadonlyGetter;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:87:6 %s | FileCheck -check-prefix=CC7 %s
|
||||||
|
// CHECK-CC7: {TypedText ReadonlyGetter}{{.*}}(brief comment: This is getter = ReadonlyGetter)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue