summaryrefslogtreecommitdiff
path: root/src/ast/pattern.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2017-01-15 11:41:00 +0800
committerJohn Hodge <tpg@mutabah.net>2017-01-15 11:41:00 +0800
commitbc31b929427a28bddebffa2acdce474d38c66a82 (patch)
tree273003645097c33e4fb18ba55fc0cfb4cb670008 /src/ast/pattern.cpp
parenta7c602469093f083a3d27e60d1b30766803891e6 (diff)
downloadmrust-bc31b929427a28bddebffa2acdce474d38c66a82.tar.gz
AST - Cleaner printing for stringify!
Diffstat (limited to 'src/ast/pattern.cpp')
-rw-r--r--src/ast/pattern.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/ast/pattern.cpp b/src/ast/pattern.cpp
index bfcc6eeb..b3c4f2f2 100644
--- a/src/ast/pattern.cpp
+++ b/src/ast/pattern.cpp
@@ -75,11 +75,23 @@ namespace AST {
}
return os;
}
+::std::ostream& operator<<(::std::ostream& os, const PatternBinding& pb)
+{
+ if( pb.m_mutable )
+ os << "mut ";
+ switch(pb.m_type)
+ {
+ case PatternBinding::Type::MOVE: break;
+ case PatternBinding::Type::REF: os << "ref "; break;
+ case PatternBinding::Type::MUTREF: os << "ref mut "; break;
+ }
+ os << pb.m_name;
+ return os;
+}
::std::ostream& operator<<(::std::ostream& os, const Pattern& pat)
{
- os << "Pattern(";
if( pat.m_binding.is_valid() ) {
- os << pat.m_binding.m_name << " @ ";
+ os << pat.m_binding << " @ ";
}
TU_MATCH(Pattern::Data, (pat.m_data), (ent),
(MaybeBind,
@@ -128,7 +140,7 @@ namespace AST {
os << ", ";
}
if( ent.extra_bind.is_valid() )
- os << ent.extra_bind.m_name;
+ os << ent.extra_bind;
os << "..";
needs_comma = true;
@@ -141,7 +153,6 @@ namespace AST {
os << "]";
)
)
- os << ")";
return os;
}
void operator%(Serialiser& s, Pattern::Value::Tag c) {