From: Fariborz Jahanian Date: Sat, 23 Mar 2013 01:10:45 +0000 (+0000) Subject: documentation parsing: when providing code completion comment X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=168613735dce8103ef78390ac28786b5a278f439;p=clang 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 --- 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) +