mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
fd30d3de42
This commit introduces the type system of the model along with several various other improvements to the model and its users. * Introduce the type system. * Introduce possibility to tag certain fields in the model as to be optional during YAML serialization. * All the `Name` fields have been replaced in favor of `CustomName` plus a `name` method that will use `CustomName` if available, or an automatically generated name otherwise. * Make TupleTreeReferences behavior more robust: now you either need to have a valid pointer to `Root` and a `Path` or be default constructed (`nullptr` for `Root` and an empty `Path`). Any other configuration is invalid. * The type system introduces `RawFunctionType`: this superseds the previous way in which we were specifying arguments and return values. Users of such information have been updated accordingly.