MaskRay marked 2 inline comments as done.
MaskRay added inline comments.

================
Comment at: include/clang-c/Index.h:6159
+   */
+  CXSymbolRole role;
 } CXIdxEntityRefInfo;
----------------
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


================
Comment at: tools/libclang/CXIndexDataConsumer.cpp:154
+  // CXSymbolRole is synchronized with clang::index::SymbolRole.
+  return CXSymbolRole(static_cast<uint32_t>(Role));
+}
----------------
ilya-biryukov wrote:
> `SymbolRoleSet` seems to have more roles not covered by `CXSymbolRole`.
> Should they be accepted by this function? 
> If yes, maybe zero those bits?
> If no, maybe add an assert?
> 
> 
> The extra roles are:
> ```
>   RelationChildOf     = 1 << 9,
>   RelationBaseOf      = 1 << 10,
>   RelationOverrideOf  = 1 << 11,
>   RelationReceivedBy  = 1 << 12,
>   RelationCalledBy    = 1 << 13,
>   RelationExtendedBy  = 1 << 14,
>   RelationAccessorOf  = 1 << 15,
>   RelationContainedBy = 1 << 16,
>   RelationIBTypeOf    = 1 << 17,
>   RelationSpecializationOf = 1 << 18,
> ```
Yes, it has more relations, but most are only used by Objective-C. In all 
test/Index tests, I have only seen `RelationContainedBy` used for .cpp files. 
Many have not occurred in .m files. So I do not want to expose them, at least 
for now.




Repository:
  rC Clang

https://reviews.llvm.org/D42895



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to