summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-08 10:31:32 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-08 10:31:32 +0800
commitf31a14465609fc8f6fb546115ce64756880ba72e (patch)
tree492be149b681659457ca69358754899fa9aa8777
parent65d1544a868a49024445220d6cc7057a55c0515d (diff)
downloadmrust-f31a14465609fc8f6fb546115ce64756880ba72e.tar.gz
HIR Typecheck Validate - Handle lack of closure code
-rw-r--r--src/hir_typeck/expr_check.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/hir_typeck/expr_check.cpp b/src/hir_typeck/expr_check.cpp
index 170611b1..838c653c 100644
--- a/src/hir_typeck/expr_check.cpp
+++ b/src/hir_typeck/expr_check.cpp
@@ -611,11 +611,14 @@ namespace {
void visit(::HIR::ExprNode_Closure& node) override
{
TRACE_FUNCTION_F(&node << " |...| ...");
- check_types_equal(node.m_code->span(), node.m_return, node.m_code->m_res_type);
- this->closure_ret_types.push_back( &node.m_return );
- node.m_code->visit( *this );
- this->closure_ret_types.pop_back( );
+ if( node.m_code )
+ {
+ check_types_equal(node.m_code->span(), node.m_return, node.m_code->m_res_type);
+ this->closure_ret_types.push_back( &node.m_return );
+ node.m_code->visit( *this );
+ this->closure_ret_types.pop_back( );
+ }
}
private: