This hides the language-specific flags and lets each language define its own fields in the opaquer storage.
Details
Diff Detail
Event Timeline
I want to see how you end up resolving the comments on payload being a plain integer type in D75626 before looking at this again. Maybe it makes more sense to use a type, the use is pretty clever but perhaps makes for opaque code in some places.
lldb/include/lldb/Symbol/Type.h | ||
---|---|---|
200–201 | It doesn't look like this setter is needed, as the single usage has now been changed to a constructor argument. And if this is immutable, then in turn some methods of TypePayloadClang become unneeded (SetIsCompleteObjCClass) | |
lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h | ||
63 | maybe make this explicit too (and augment it with a encode method to make the usage less weird)? |
Rebase and update based on https://reviews.llvm.org/D75488. It no longer takes a reference, but is a value type instead.
Could you make the uint32_t a typedef? I'm fine with this not being type-safe, but a typedef would at least allow me to search for where this information is used. Grepping/searching for uint32_t isn't a great experience. It would also make this interface more self-documenting.
Beside that LGTM.
It doesn't look like this setter is needed, as the single usage has now been changed to a constructor argument. And if this is immutable, then in turn some methods of TypePayloadClang become unneeded (SetIsCompleteObjCClass)