summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hir_typeck/expr_cs.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/hir_typeck/expr_cs.cpp b/src/hir_typeck/expr_cs.cpp
index 44a6c80c..e796b3b1 100644
--- a/src/hir_typeck/expr_cs.cpp
+++ b/src/hir_typeck/expr_cs.cpp
@@ -795,12 +795,17 @@ namespace {
}
this->context.add_ivars( node.m_true->m_res_type );
- this->equate_types_inner_coerce(node.span(), node.m_res_type, node.m_true);
+ if( node.m_false ) {
+ this->context.equate_types_coerce(node.span(), node.m_res_type, node.m_true);
+ }
+ else {
+ this->context.equate_types(node.span(), node.m_res_type, ::HIR::TypeRef::new_unit());
+ }
node.m_true->visit( *this );
if( node.m_false ) {
this->context.add_ivars( node.m_false->m_res_type );
- this->equate_types_inner_coerce(node.span(), node.m_res_type, node.m_false);
+ this->context.equate_types_coerce(node.span(), node.m_res_type, node.m_false);
node.m_false->visit( *this );
}
else {