diff options
author | John Hodge <tpg@mutabah.net> | 2016-10-01 16:01:05 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-10-01 16:01:05 +0800 |
commit | 307e7704a977f023eb355ae1f03ba67a1084b39f (patch) | |
tree | e6f0d18788b47b8febe29706852ea974fa4df846 | |
parent | ddf6c491e0cedd196ef46b2f698965c45227c4f7 (diff) | |
download | mrust-307e7704a977f023eb355ae1f03ba67a1084b39f.tar.gz |
Resolve Absolute - Fix closure args not being scoped to the closure
-rw-r--r-- | src/resolve/absolute.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/resolve/absolute.cpp b/src/resolve/absolute.cpp index a47350b4..ee5d6b36 100644 --- a/src/resolve/absolute.cpp +++ b/src/resolve/absolute.cpp @@ -1610,13 +1610,18 @@ void Resolve_Absolute_ExprNode(Context& context, ::AST::ExprNode& node) } void visit(AST::ExprNode_Closure& node) override { DEBUG("ExprNode_Closure"); + Resolve_Absolute_Type(this->context, node.m_return); + + this->context.push_block(); for( auto& arg : node.m_args ) { Resolve_Absolute_Type(this->context, arg.second); Resolve_Absolute_Pattern(this->context, false, arg.first); } node.m_code->visit(*this); + + this->context.pop_block(); } } expr_iter(context); |