diff options
author | John Hodge <tpg@mutabah.net> | 2016-06-08 14:38:16 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-06-08 14:38:16 +0800 |
commit | 21a9cc5f53bdb0eeccc3967d201568bf2e5600cf (patch) | |
tree | d43e0a188ac064e6597e93c62b8589eae4eda130 | |
parent | 9db1983ed557ccc99d33b07cc1be75ee3f5b303d (diff) | |
download | mrust-21a9cc5f53bdb0eeccc3967d201568bf2e5600cf.tar.gz |
HIR Typecheck - Propagate through tuple literals
-rw-r--r-- | src/hir_typeck/expr.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/hir_typeck/expr.cpp b/src/hir_typeck/expr.cpp index 5107ffdc..c1b53aa7 100644 --- a/src/hir_typeck/expr.cpp +++ b/src/hir_typeck/expr.cpp @@ -2544,6 +2544,15 @@ namespace { // - Tuple literal: void visit(::HIR::ExprNode_Tuple& node) override { + assert( node.m_res_type.m_data.is_Tuple() ); + auto& tup_ents = node.m_res_type.m_data.as_Tuple(); + assert( tup_ents.size() == node.m_vals.size() ); + + for(unsigned int i = 0; i < tup_ents.size(); i ++) + { + this->context.apply_equality(node.span(), tup_ents[i], node.m_vals[i]->m_res_type, &node.m_vals[i]); + } + ::HIR::ExprVisitorDef::visit(node); } // - Array list |