diff options
author | Mark Wielaard <mark@klomp.org> | 2021-08-01 12:57:33 +0200 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2021-08-01 12:57:33 +0200 |
commit | 389fd74a3f3e9422a965263b6961b51295c55976 (patch) | |
tree | d815a7d24660b24da5fcf7d05b5f2b3e8de99ae1 /gcc/rust/parse/rust-parse-impl.h | |
parent | 06a65591eb09fbec25e4ee38c1cf751b416af5bf (diff) | |
download | gcc-389fd74a3f3e9422a965263b6961b51295c55976.zip gcc-389fd74a3f3e9422a965263b6961b51295c55976.tar.gz gcc-389fd74a3f3e9422a965263b6961b51295c55976.tar.bz2 |
union support for hir type checking and gcc backend
Treat a union as a Struct variant like a tuple struct. Add an
iterator and get_identifier functions to the AST Union class. Same
for the HIR Union class, plus a get_generics_params method. Add a new
ADTKind enum and adt_kind field to the ADTType to select the
underlying abstract data type (struct struct, tuple struct or union,
with enum as possible future variant).
An union constructor can have only one field. Add an union_index field
to StructExprStruct which is set during type checking in the
TypeCheckStructExpr HIR StructExprStructFields visitor.
For the Gcc_backend class rename fill_in_struct to fill_in_fields and
use it from a new union_type method. Handle union_index in
constructor_expression (so only one field is initialized).
Diffstat (limited to 'gcc/rust/parse/rust-parse-impl.h')
0 files changed, 0 insertions, 0 deletions