Clean up type handling in make_computed_style_base.py.
Currently, the way we specify the types of fields in ComputedStyleBase
is confusing and inconsistent. This makes it difficult to extend the
generator to support non-enum types like ints and platform types.
This patch renames:
- storage_type -> type_name (not really storage related)
- storage_type_path -> field_type_path (not really storage related)
- field_family -> field_role (family is vague, role is better IMO)
- keyword_only -> field_template (field_template generalises
keyword_only to more than just enums).
so that, as of this patch:
- Every field picks a 'template' which for now can only be 'keyword',
but can be 'primitive' or 'external' when we support those later.
This affects what the generated API for that field looks like.
- Every field has a 'type_name', which is the actual C++ type used in
the generated code. For 'keyword' fields, this is the enum name.
For 'primitive', it'll be int/bool etc. Previously, 'storage_type'
was same as 'type_name', which means templates could not tell
whether the field is a enum or something else.
This patch does not change behaviour.
BUG=628043
Review-Url: https://codereview.chromium.org/2692803002
Cr-Commit-Position: refs/heads/master@{#451534}
3 files changed