diff options
Diffstat (limited to 'src/hir/pattern.cpp')
-rw-r--r-- | src/hir/pattern.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/hir/pattern.cpp b/src/hir/pattern.cpp index 386d1699..f3ad277e 100644 --- a/src/hir/pattern.cpp +++ b/src/hir/pattern.cpp @@ -12,7 +12,7 @@ namespace HIR { os << "\"" << e << "\""; ), (Named, - os << e; + os << e.path; ) ) return os; @@ -51,6 +51,9 @@ namespace HIR { os << s << ", "; os << ")"; ), + (StructValue, + os << e.path; + ), (StructTuple, os << e.path; os << "("; @@ -59,7 +62,7 @@ namespace HIR { os << ")"; ), (StructTupleWildcard, - os << e.path; + os << e.path << "(..)"; ), (Struct, os << e.path; @@ -145,7 +148,7 @@ namespace { return ::HIR::Pattern::Value::make_String(e); ), (Named, - return ::HIR::Pattern::Value::make_Named(e.clone()); + return ::HIR::Pattern::Value::make_Named({ e.path.clone(), e.binding }); ) ) throw ""; @@ -173,6 +176,11 @@ namespace { clone_pat_vec(e.sub_patterns) })); ), + (StructValue, + return Pattern(m_binding, Data::make_StructValue({ + e.path.clone(), e.binding + })); + ), (StructTuple, return Pattern(m_binding, Data::make_StructTuple({ e.path.clone(), |