[PATCH] D42895: [libclang] Add `CXSymbolRole role` to CXIdxEntityRefInfo

Ilya Biryukov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 9 01:42:22 PST 2018


ilya-biryukov added inline comments.


================
Comment at: include/clang-c/Index.h:6159
+   */
+  CXSymbolRole role;
 } CXIdxEntityRefInfo;
----------------
MaskRay wrote:
> ilya-biryukov wrote:
> > MaskRay wrote:
> > > ilya-biryukov wrote:
> > > > Why do we need to store both `CXIdxEntityRefKind` and `CXSymbolRole`? Can we store just `CXSymbolRole`?
> > > > Is this for compatibility with existing clients?
> > > > 
> > > > If so, maybe we could:
> > > > - remove `Implicit` and `Direct` from the `CXSymbolRole`
> > > > - keep it only in `CXIdxEntityRefKind`
> > > > - not deprecate the `CXIdxEntityRefKind`
> > > I think `CXIdxEntityRefKind` should be deprecated but for compatibility we do not remove the field for this minor version upgrade. But they can be removed after a major version upgrade.
> > > 
> > > For what I have observed, `Implicit` is only used by Objective-C
> > We should definitely loop the owners of libclang in if we want to deprecate the API, I'm not familiar with the contract of libclang regarding the API deprecation.
> > I'm not sure who's responsible for that, asking at the cfe-dev mailing list could be your best bet for that.
> > 
> > The alternative I suggest is removing `Implicit` from `CXSymbolRole`, making this change an extension of existing API. I expect that this could be done without more through discussion.
> I'll keep `CXSymbolRole_Implicit` and make it duplicate the functionality provided by CXIdxEntityRefKind, with a comment that CXIdxEntityRefKind may be deprecated in a future version.
> 
> Thanks, I'll also ask the cfe-dev mailing list.
LG, thanks.


================
Comment at: tools/c-index-test/c-index-test.c:3545
   printCXIndexContainer(info->container);
-  printf(" | refkind: ");
-  switch (info->kind) {
----------------
Maybe keep this debug-printing of refkind? We're not removing it in this patch.


Repository:
  rC Clang

https://reviews.llvm.org/D42895





More information about the cfe-commits mailing list