summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-06-08 14:38:16 +0800
committerJohn Hodge <tpg@mutabah.net>2016-06-08 14:38:16 +0800
commit21a9cc5f53bdb0eeccc3967d201568bf2e5600cf (patch)
treed43e0a188ac064e6597e93c62b8589eae4eda130
parent9db1983ed557ccc99d33b07cc1be75ee3f5b303d (diff)
downloadmrust-21a9cc5f53bdb0eeccc3967d201568bf2e5600cf.tar.gz
HIR Typecheck - Propagate through tuple literals
-rw-r--r--src/hir_typeck/expr.cpp9
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