summaryrefslogtreecommitdiff
path: root/src/expand/mod.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-18 21:40:06 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-18 21:40:06 +0800
commitc0d8141930e95f71a6d4fb84114fdc8a449527b7 (patch)
tree828892e2cbee599bc15227ba3270f6ddc82d2581 /src/expand/mod.cpp
parent65aba167033019994e35f43b819d8fbd3620e9ff (diff)
downloadmrust-c0d8141930e95f71a6d4fb84114fdc8a449527b7.tar.gz
All - Support tuple patterns with .. at the start/end - TODO: Support in the middle
Diffstat (limited to 'src/expand/mod.cpp')
-rw-r--r--src/expand/mod.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/expand/mod.cpp b/src/expand/mod.cpp
index 2f9956bc..6a7d81ee 100644
--- a/src/expand/mod.cpp
+++ b/src/expand/mod.cpp
@@ -161,10 +161,8 @@ void Expand_Pattern(bool is_early, ::AST::Crate& crate, LList<const AST::Module*
for(auto& sp : e.sub_patterns)
Expand_Pattern(is_early, crate, modstack, mod, sp);
),
- (WildcardStructTuple,
- ),
(StructTuple,
- for(auto& sp : e.sub_patterns)
+ for(auto& sp : e.tup_pat.sub_patterns)
Expand_Pattern(is_early, crate, modstack, mod, sp);
),
(Struct,
@@ -371,7 +369,7 @@ struct CExpandExpr:
::std::vector< ::AST::ExprNode_Match_Arm> arms;
// - `Some(pattern ) => code`
arms.push_back( ::AST::ExprNode_Match_Arm(
- ::make_vec1( ::AST::Pattern(::AST::Pattern::TagEnumVariant(), path_Some, ::make_vec1( mv$(node.m_pattern) ) ) ),
+ ::make_vec1( ::AST::Pattern(::AST::Pattern::TagNamedTuple(), path_Some, ::make_vec1( mv$(node.m_pattern) ) ) ),
nullptr,
mv$(node.m_code)
) );
@@ -506,13 +504,13 @@ struct CExpandExpr:
::std::vector< ::AST::ExprNode_Match_Arm> arms;
// `Ok(v) => v,`
arms.push_back(::AST::ExprNode_Match_Arm(
- ::make_vec1( ::AST::Pattern(::AST::Pattern::TagEnumVariant(), path_Ok, ::make_vec1( ::AST::Pattern(::AST::Pattern::TagBind(), "v") )) ),
+ ::make_vec1( ::AST::Pattern(::AST::Pattern::TagNamedTuple(), path_Ok, ::make_vec1( ::AST::Pattern(::AST::Pattern::TagBind(), "v") )) ),
nullptr,
::AST::ExprNodeP( new ::AST::ExprNode_NamedValue( ::AST::Path(::AST::Path::TagLocal(), "v") ) )
));
// `Err(e) => return Err(From::from(e)),`
arms.push_back(::AST::ExprNode_Match_Arm(
- ::make_vec1( ::AST::Pattern(::AST::Pattern::TagEnumVariant(), path_Err, ::make_vec1( ::AST::Pattern(::AST::Pattern::TagBind(), "e") )) ),
+ ::make_vec1( ::AST::Pattern(::AST::Pattern::TagNamedTuple(), path_Err, ::make_vec1( ::AST::Pattern(::AST::Pattern::TagBind(), "e") )) ),
nullptr,
::AST::ExprNodeP(new ::AST::ExprNode_Flow(
::AST::ExprNode_Flow::RETURN,