aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/parse/rust-parse-impl.h
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2021-08-01 12:57:33 +0200
committerMark Wielaard <mark@klomp.org>2021-08-01 12:57:33 +0200
commit389fd74a3f3e9422a965263b6961b51295c55976 (patch)
treed815a7d24660b24da5fcf7d05b5f2b3e8de99ae1 /gcc/rust/parse/rust-parse-impl.h
parent06a65591eb09fbec25e4ee38c1cf751b416af5bf (diff)
downloadgcc-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