diff options
Diffstat (limited to 'src/hir/pattern.cpp')
-rw-r--r-- | src/hir/pattern.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/hir/pattern.cpp b/src/hir/pattern.cpp index d6715f0c..c5c2ef93 100644 --- a/src/hir/pattern.cpp +++ b/src/hir/pattern.cpp @@ -47,12 +47,17 @@ namespace HIR { ), (Tuple, os << "("; - if(e.glob_pos == ::HIR::Pattern::GlobPos::Start) - os << ".., "; for(const auto& s : e.sub_patterns) os << s << ", "; - if(e.glob_pos == ::HIR::Pattern::GlobPos::End) - os << ".., "; + os << ")"; + ), + (SplitTuple, + os << "("; + for(const auto& s : e.leading) + os << s << ", "; + os << ".., "; + for(const auto& s : e.trailing) + os << s << ", "; os << ")"; ), (StructValue, @@ -171,10 +176,15 @@ namespace { ), (Tuple, return Pattern(m_binding, Data::make_Tuple({ - e.glob_pos, clone_pat_vec(e.sub_patterns) })); ), + (SplitTuple, + return Pattern(m_binding, Data::make_SplitTuple({ + clone_pat_vec(e.leading), + clone_pat_vec(e.trailing) + })); + ), (StructValue, return Pattern(m_binding, Data::make_StructValue({ e.path.clone(), e.binding |