aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/util/rust-hir-map.h
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2021-01-18 17:57:22 +0000
committerPhilip Herron <herron.philip@googlemail.com>2021-01-20 09:59:22 +0000
commit12f7bd0fc4e9ab4e98869b5265aea6bacfb31d03 (patch)
treeaaff0986f81394b83e8536b68a18bcd48ecb9484 /gcc/rust/util/rust-hir-map.h
parent6e2acd529fcfa43368f7ea8209cc5e6b88d2bd79 (diff)
downloadgcc-12f7bd0fc4e9ab4e98869b5265aea6bacfb31d03.zip
gcc-12f7bd0fc4e9ab4e98869b5265aea6bacfb31d03.tar.gz
gcc-12f7bd0fc4e9ab4e98869b5265aea6bacfb31d03.tar.bz2
Support struct initializers using Identifiers
This resolves each identifier for its respective field. It includes fixes for the TypeResolver to print errors instead of asserts where we loose decent debug info.
Diffstat (limited to 'gcc/rust/util/rust-hir-map.h')
-rw-r--r--gcc/rust/util/rust-hir-map.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/rust/util/rust-hir-map.h b/gcc/rust/util/rust-hir-map.h
index a400265..3818be9 100644
--- a/gcc/rust/util/rust-hir-map.h
+++ b/gcc/rust/util/rust-hir-map.h
@@ -121,6 +121,10 @@ public:
void insert_hir_param (CrateNum crateNum, HirId id, HIR::FunctionParam *type);
HIR::FunctionParam *lookup_hir_param (CrateNum crateNum, HirId id);
+ void insert_hir_struct_field (CrateNum crateNum, HirId id,
+ HIR::StructExprField *type);
+ HIR::StructExprField *lookup_hir_struct_field (CrateNum crateNum, HirId id);
+
void walk_local_defids_for_crate (CrateNum crateNum,
std::function<bool (HIR::Item *)> cb);
@@ -159,6 +163,8 @@ private:
std::map<CrateNum, std::map<HirId, HIR::Expr *> > hirExprMappings;
std::map<CrateNum, std::map<HirId, HIR::Stmt *> > hirStmtMappings;
std::map<CrateNum, std::map<HirId, HIR::FunctionParam *> > hirParamMappings;
+ std::map<CrateNum, std::map<HirId, HIR::StructExprField *> >
+ hirStructFieldMappings;
// location info
std::map<CrateNum, std::map<NodeId, Location> > locations;