Commit Graph

11 Commits

Author SHA1 Message Date
Douglas Gregor 6b8232ff82 Eliminate cursor kinds used to express definitions. Instead, provide
CIndex functions that (1) map from a reference or declaration to the
corresponding definition, if available, and (2) determine whether a
given declaration cursor is also a definition. This eliminates a lot
of duplication in the cursor kinds, and maps more closely to the Clang
ASTs.

This is another API + ABI breaker with no deprecation. Yay, progress.

llvm-svn: 93893
2010-01-19 19:34:47 +00:00
Douglas Gregor 7ecd020cf2 Teach clang_getCursorLocation() to return the locations of references
rather than the locations that refer to.

llvm-svn: 93812
2010-01-18 23:41:10 +00:00
Ted Kremenek 0ea923c550 Explicitly not handle ObjCForwardProtocolDecl in GetCursorKind().
llvm-svn: 93779
2010-01-18 22:07:45 +00:00
Douglas Gregor 46d6614388 Give ObjCClassRef cursors a sane representation, which is encapsulated
in CXCursor.cpp. With this sane representation, fix the class
reference that is part of Objective-C category declarations so that
the cursor's location matches up with the reference, not the class
being referred to.

llvm-svn: 93640
2010-01-16 17:14:40 +00:00
Douglas Gregor ef6eb84da1 Use a sane encoding for CXCursor_ObjCProtocolRef, using the actual
source locations where the protocols were referenced rather than the
location of some random enclosing declaration.

llvm-svn: 93637
2010-01-16 15:44:18 +00:00
Douglas Gregor 6c8959b71b Give CXCursor_ObjCSuperClassRef a sane encoding, which is only known
to CXCursor.cpp.

llvm-svn: 93634
2010-01-16 14:00:32 +00:00
Ted Kremenek 13751dc571 Add mapping from ObjCPropertDecl to CXCursorKind.
llvm-svn: 93623
2010-01-16 02:08:29 +00:00
Ted Kremenek 9cec00019a Remove TranslateKind and centralize Decl -> CXCursorKind in GetCursorKind(). This revealed a bunch of inconsistencies in how CXCursorKinds were being computed.
llvm-svn: 93618
2010-01-16 01:44:12 +00:00
Ted Kremenek c2aa0f1ecb Migrate Decl* -> cursorkind logic into CXCursor.cpp, and drastically tighten TUVisitor.
llvm-svn: 93599
2010-01-16 00:36:30 +00:00
Douglas Gregor c58d05bcf9 Make CXCursor's data opaque.
llvm-svn: 93561
2010-01-15 21:56:13 +00:00
Ted Kremenek 87553c42c0 Add CXCursor.[h,cpp]. These files will centralize the logic for creating/probing CXCursors.
llvm-svn: 93547
2010-01-15 20:35:54 +00:00