From 21a9cc5f53bdb0eeccc3967d201568bf2e5600cf Mon Sep 17 00:00:00 2001 From: John Hodge Date: Wed, 8 Jun 2016 14:38:16 +0800 Subject: HIR Typecheck - Propagate through tuple literals --- src/hir_typeck/expr.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') 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 -- cgit v1.2.3