summaryrefslogtreecommitdiff
path: root/src/hir/pattern.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hir/pattern.cpp')
-rw-r--r--src/hir/pattern.cpp20
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