[cfe-commits] r146615 - in /cfe/trunk: test/Index/index-suppress-refs.h test/Index/index-suppress-refs.m tools/libclang/IndexingContext.cpp
Argyrios Kyrtzidis
akyrtzi at gmail.com
Wed Dec 14 16:04:56 PST 2011
Author: akirtzidis
Date: Wed Dec 14 18:04:56 2011
New Revision: 146615
URL: http://llvm.org/viewvc/llvm-project?rev=146615&view=rev
Log:
[libclang] Suppress indexing references for occurrences of the interface
in a superclass and the protocols in a protocol list.
Modified:
cfe/trunk/test/Index/index-suppress-refs.h
cfe/trunk/test/Index/index-suppress-refs.m
cfe/trunk/tools/libclang/IndexingContext.cpp
Modified: cfe/trunk/test/Index/index-suppress-refs.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/index-suppress-refs.h?rev=146615&r1=146614&r2=146615&view=diff
==============================================================================
--- cfe/trunk/test/Index/index-suppress-refs.h (original)
+++ cfe/trunk/test/Index/index-suppress-refs.h Wed Dec 14 18:04:56 2011
@@ -1,3 +1,9 @@
@interface I
@end
+
+ at interface B
+ at end
+
+ at protocol P
+ at end
Modified: cfe/trunk/test/Index/index-suppress-refs.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/index-suppress-refs.m?rev=146615&r1=146614&r2=146615&view=diff
==============================================================================
--- cfe/trunk/test/Index/index-suppress-refs.m (original)
+++ cfe/trunk/test/Index/index-suppress-refs.m Wed Dec 14 18:04:56 2011
@@ -14,9 +14,17 @@
@class I;
+ at interface S : B<P>
+-(void)meth:(B*)b :(id<P>)p;
+ at end
+
// RUN: env CINDEXTEST_SUPPRESSREFS=1 c-index-test -index-file %s | FileCheck %s
// CHECK: [indexDeclaration]: kind: objc-class | name: I
// CHECK-NEXT: <ObjCContainerInfo>: kind: interface
+// CHECK-NEXT: [indexDeclaration]: kind: objc-class | name: B
+// CHECK-NEXT: <ObjCContainerInfo>: kind: interface
+// CHECK-NEXT: [indexDeclaration]: kind: objc-protocol | name: P
+// CHECK-NEXT: <ObjCContainerInfo>: kind: interface
// CHECK-NEXT: [indexDeclaration]: kind: typedef | name: MyInt
// CHECK-NEXT: [indexDeclaration]: kind: variable | name: gx
// CHECK-NEXT: [indexDeclaration]: kind: objc-class | name: I
@@ -27,3 +35,10 @@
// CHECK-NEXT: [indexDeclaration]: kind: objc-instance-method | name: meth
// CHECK-NOT: [indexEntityReference]: kind: objc-class | name: I
// CHECK-NOT: [indexDeclaration]: kind: objc-class | name: I
+// CHECK-NEXT: [indexDeclaration]: kind: objc-class | name: S
+// CHECK-NEXT: <ObjCContainerInfo>: kind: interface
+// CHECK-NEXT: <base>: kind: objc-class | name: B
+// CHECK-NEXT: <protocol>: kind: objc-protocol | name: P
+// CHECK-NEXT: [indexDeclaration]: kind: objc-instance-method | name: meth::
+// CHECK-NOT: [indexEntityReference]: kind: objc-class | name: B
+// CHECK-NOT: [indexEntityReference]: kind: objc-protocol | name: P
\ No newline at end of file
Modified: cfe/trunk/tools/libclang/IndexingContext.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/IndexingContext.cpp?rev=146615&r1=146614&r2=146615&view=diff
==============================================================================
--- cfe/trunk/tools/libclang/IndexingContext.cpp (original)
+++ cfe/trunk/tools/libclang/IndexingContext.cpp Wed Dec 14 18:04:56 2011
@@ -34,6 +34,9 @@
MakeCursorObjCProtocolRef(PD, Loc, IdxCtx.CXTU),
IdxCtx.getIndexLoc(Loc) };
ProtInfos.push_back(ProtInfo);
+
+ if (IdxCtx.suppressRefs())
+ IdxCtx.markEntityOccurrenceInFile(PD, Loc);
}
for (unsigned i = 0, e = ProtInfos.size(); i != e; ++i)
@@ -328,6 +331,9 @@
BaseClass.base = &BaseEntity;
BaseClass.cursor = MakeCursorObjCSuperClassRef(SuperD, SuperLoc, CXTU);
BaseClass.loc = getIndexLoc(SuperLoc);
+
+ if (suppressRefs())
+ markEntityOccurrenceInFile(SuperD, SuperLoc);
}
ObjCProtocolListInfo ProtInfo(D->getReferencedProtocols(), *this, SA);
More information about the cfe-commits
mailing list