#include "pattern.hpp" namespace HIR { ::std::ostream& operator<<(::std::ostream& os, const Pattern::Value& x) { TU_MATCH(Pattern::Value, (x), (e), (Integer, // TODO: Print with type os << e.value; ), (String, os << "\"" << e << "\""; ), (Named, os << e; ) ) return os; } ::std::ostream& operator<<(::std::ostream& os, const Pattern& x) { if( x.m_binding.is_valid() ) { if( x.m_binding.m_mutable ) os << "mut "; switch(x.m_binding.m_type) { case PatternBinding::Type::Move: break; case PatternBinding::Type::Ref: os << "ref "; break; case PatternBinding::Type::MutRef: os << "ref mut "; break; } os << x.m_binding.m_name << "/*"<