From 168613735dce8103ef78390ac28786b5a278f439 Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Sat, 23 Mar 2013 01:10:45 +0000 Subject: [PATCH] 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177797 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaCodeComplete.cpp | 11 ++++++++-- .../Index/complete-documentation-properties.m | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp index 1cb264265a..34c83edcde 100644 --- a/lib/Sema/SemaCodeComplete.cpp +++ b/lib/Sema/SemaCodeComplete.cpp @@ -2550,11 +2550,18 @@ CodeCompletionResult::CreateCodeCompletionString(ASTContext &Ctx, if (M->isPropertyAccessor()) if (const ObjCPropertyDecl *PDecl = M->findPropertyDecl()) if (PDecl->getGetterName() == M->getSelector() && - PDecl->getIdentifier() != M->getIdentifier()) - if (const RawComment *RC = Ctx.getRawCommentForAnyRedecl(PDecl)) { + PDecl->getIdentifier() != M->getIdentifier()) { + if (const RawComment *RC = + Ctx.getRawCommentForAnyRedecl(M)) { Result.addBriefComment(RC->getBriefText(Ctx)); Pattern->BriefComment = Result.getBriefComment(); } + else if (const RawComment *RC = + Ctx.getRawCommentForAnyRedecl(PDecl)) { + Result.addBriefComment(RC->getBriefText(Ctx)); + Pattern->BriefComment = Result.getBriefComment(); + } + } } return Pattern; diff --git a/test/Index/complete-documentation-properties.m b/test/Index/complete-documentation-properties.m index ea41d958da..774a02021e 100644 --- a/test/Index/complete-documentation-properties.m +++ b/test/Index/complete-documentation-properties.m @@ -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 // 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) + -- 2.40.0