summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-10-29 22:01:01 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-10-29 22:01:01 +0800
commitfa2a605b45a2b7c56c97feda8dd8db86eed50362 (patch)
treea2c82367d8e424e8d10fbabd020ed9cf2d622757
parentb2f0e1514bd8f52c5a8bc42cf862a678e2c691c3 (diff)
downloadmrust-fa2a605b45a2b7c56c97feda8dd8db86eed50362.tar.gz
HIR Typecheck Expressions - Coerce within array literals
-rw-r--r--src/hir_typeck/expr_cs.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/hir_typeck/expr_cs.cpp b/src/hir_typeck/expr_cs.cpp
index b665b14e..c6f060f5 100644
--- a/src/hir_typeck/expr_cs.cpp
+++ b/src/hir_typeck/expr_cs.cpp
@@ -1448,6 +1448,7 @@ namespace {
if( can_coerce_inner_result() )
{
+ DEBUG("Tuple inner coerce");
const auto& ty = this->context.get_type(node.m_res_type);
TU_IFLET( ::HIR::TypeRef::Data, ty.m_data, Tuple, e,
if( e.size() != node.m_vals.size() ) {
@@ -1492,6 +1493,7 @@ namespace {
void visit(::HIR::ExprNode_ArrayList& node) override
{
TRACE_FUNCTION_F(&node << " [...,]");
+ auto _ = this->push_inner_coerce_scoped(true);
for( auto& val : node.m_vals ) {
this->context.add_ivars( val->m_res_type );
}