Lines Matching refs:cursor
144 static enum CXChildVisitResult findFileIdRefVisit(CXCursor cursor,
147 CXCursor declCursor = clang_getCursorReferenced(cursor);
157 cursor = cxcursor::getSelectorIdentifierCursor(data->SelectorIdIdx, cursor);
161 if ((cursor.kind == CXCursor_ObjCClassMethodDecl ||
162 cursor.kind == CXCursor_ObjCInstanceMethodDecl) &&
163 cxcursor::getSelectorIdentifierIndex(cursor) == -1)
166 if (clang_isExpression(cursor.kind)) {
167 if (cursor.kind == CXCursor_DeclRefExpr ||
168 cursor.kind == CXCursor_MemberRefExpr) {
171 } else if (cursor.kind == CXCursor_ObjCMessageExpr &&
172 cxcursor::getSelectorIdentifierIndex(cursor) != -1) {
180 Loc = cxloc::translateSourceLocation(clang_getCursorLocation(cursor));
181 SourceLocation SelIdLoc = cxcursor::getSelectorIdentifierLoc(cursor);
205 if (data->visitor.visit(data->visitor.context, cursor,
262 static enum CXChildVisitResult findFileMacroRefVisit(CXCursor cursor,
266 if (cursor.kind == CXCursor_MacroDefinition)
267 Macro = getCursorMacroDefinition(cursor)->getName();
268 else if (cursor.kind == CXCursor_MacroExpansion)
269 Macro = getCursorMacroExpansion(cursor).getName();
278 Loc = cxloc::translateSourceLocation(clang_getCursorLocation(cursor));
300 if (data->visitor.visit(data->visitor.context, cursor,
306 static bool findMacroRefsInFile(CXTranslationUnit TU, CXCursor Cursor,
309 if (Cursor.kind != CXCursor_MacroDefinition &&
310 Cursor.kind != CXCursor_MacroExpansion)
318 if (Cursor.kind == CXCursor_MacroDefinition)
319 Macro = getCursorMacroDefinition(Cursor)->getName();
321 Macro = getCursorMacroExpansion(Cursor).getName();
351 enum CXChildVisitResult visit(CXCursor cursor, CXCursor parent) {
352 if (cursor.kind != CXCursor_InclusionDirective)
356 Loc = cxloc::translateSourceLocation(clang_getCursorLocation(cursor));
366 if (visitor.visit(visitor.context, cursor,
372 static enum CXChildVisitResult visit(CXCursor cursor, CXCursor parent,
375 visit(cursor, parent);
409 CXResult clang_findReferencesInFile(CXCursor cursor, CXFile file,
413 if (clang_Cursor_isNull(cursor)) {
415 *Log << "Null cursor";
418 if (cursor.kind == CXCursor_NoDeclFound) {
435 *Log << cursor << " @" << static_cast<const FileEntry *>(file);
437 ASTUnit *CXXUnit = cxcursor::getCursorASTUnit(cursor);
443 if (cursor.kind == CXCursor_MacroDefinition ||
444 cursor.kind == CXCursor_MacroExpansion) {
445 if (findMacroRefsInFile(cxcursor::getCursorTU(cursor),
446 cursor,
458 // for 'MyStruct' we'll have a cursor pointing at the constructor decl but
460 cursor = cxcursor::getTypeRefCursor(cursor);
462 CXCursor refCursor = clang_getCursorReferenced(cursor);
466 *Log << "cursor is not referencing a declaration";
470 if (findIdRefsInFile(cxcursor::getCursorTU(cursor),
512 CXCursor cursor,
515 return INVOKE_BLOCK2(block, cursor, range);
518 CXResult clang_findReferencesInFileWithBlock(CXCursor cursor,
523 return clang_findReferencesInFile(cursor, file, visitor);