ilya-biryukov added inline comments.
================ Comment at: include/clang-c/Index.h:6159 + */ + CXSymbolRole role; } CXIdxEntityRefInfo; ---------------- 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` ================ Comment at: tools/libclang/CXIndexDataConsumer.cpp:154 + // CXSymbolRole is synchronized with clang::index::SymbolRole. + return CXSymbolRole(static_cast<uint32_t>(Role)); +} ---------------- `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, ``` 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