summaryrefslogtreecommitdiff
path: root/src/hir_expand/closures.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-19 10:27:38 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-19 10:27:38 +0800
commita3e8257c4f77f197c9be2dbae7aaddb81257abb2 (patch)
tree598c815b4e42041966e3a0834a118b9a7c56411f /src/hir_expand/closures.cpp
parent64c957b03ede8b0af825b50e6e551c61444a3275 (diff)
downloadmrust-a3e8257c4f77f197c9be2dbae7aaddb81257abb2.tar.gz
Patterns - Support tuples with .. (fully)
Diffstat (limited to 'src/hir_expand/closures.cpp')
-rw-r--r--src/hir_expand/closures.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/hir_expand/closures.cpp b/src/hir_expand/closures.cpp
index 52ef1629..74255849 100644
--- a/src/hir_expand/closures.cpp
+++ b/src/hir_expand/closures.cpp
@@ -407,7 +407,7 @@ namespace {
args_ty_inner.push_back( monomorphise_type_with(sp, arg.second, monomorph_cb) );
}
::HIR::TypeRef args_ty { mv$(args_ty_inner) };
- ::HIR::Pattern args_pat { {}, ::HIR::Pattern::Data::make_Tuple({ ::HIR::Pattern::GlobPos::None, mv$(args_pat_inner) }) };
+ ::HIR::Pattern args_pat { {}, ::HIR::Pattern::Data::make_Tuple({ mv$(args_pat_inner) }) };
::HIR::TypeRef ret_type = monomorphise_type_with(sp, node.m_return, monomorph_cb);
DEBUG("args_ty = " << args_ty << ", ret_type = " << ret_type);
@@ -609,6 +609,12 @@ namespace {
for( const auto& subpat : e.sub_patterns )
add_closure_def_from_pattern(sp, subpat);
),
+ (SplitTuple,
+ for( const auto& subpat : e.leading )
+ add_closure_def_from_pattern(sp, subpat);
+ for( const auto& subpat : e.trailing )
+ add_closure_def_from_pattern(sp, subpat);
+ ),
(Slice,
for(const auto& sub : e.sub_patterns)
add_closure_def_from_pattern(sp, sub);