diff options
author | John Hodge <tpg@ucc.asn.au> | 2016-06-04 23:44:25 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2016-06-04 23:44:25 +0800 |
commit | b745c5f88faf89af9a487b7cf0cfc362b73c0423 (patch) | |
tree | e2b99aeaa80dc08cd96382c9be94e9c2a880a50a /src/ast/pattern.cpp | |
parent | 31bff06cbd7b208096958edb21c4a50e17b6e9f5 (diff) | |
download | mrust-b745c5f88faf89af9a487b7cf0cfc362b73c0423.tar.gz |
Resolve - Fix variable resolution and pattern binding
Diffstat (limited to 'src/ast/pattern.cpp')
-rw-r--r-- | src/ast/pattern.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/ast/pattern.cpp b/src/ast/pattern.cpp index 9e17abcf..68d5d627 100644 --- a/src/ast/pattern.cpp +++ b/src/ast/pattern.cpp @@ -44,8 +44,9 @@ namespace AST { ::std::ostream& operator<<(::std::ostream& os, const Pattern& pat) { os << "Pattern("; - if(pat.m_binding != "") - os << pat.m_binding << " @ "; + if( pat.m_binding.is_valid() ) { + os << pat.m_binding.m_name << " @ "; + } TU_MATCH(Pattern::Data, (pat.m_data), (ent), (MaybeBind, os << ent.name << "?"; @@ -176,8 +177,6 @@ AST::Pattern AST::Pattern::clone() const AST::Pattern rv; rv.m_span = m_span; rv.m_binding = m_binding; - rv.m_binding_type = m_binding_type; - rv.m_binding_mut = m_binding_mut; struct H { static ::std::unique_ptr<Pattern> clone_sp(const ::std::unique_ptr<Pattern>& p) { @@ -245,7 +244,7 @@ AST::Pattern AST::Pattern::clone() const #define _D(VAR, ...) case Pattern::Data::TAG_##VAR: { m_data = Pattern::Data::make_##VAR({}); auto& ent = m_data.as_##VAR(); (void)&ent; __VA_ARGS__ } break; SERIALISE_TYPE(Pattern::, "Pattern", { - s.item(m_binding); + //s.item(m_binding); s % m_data.tag(); TU_MATCH(Pattern::Data, (m_data), (e), (Any, @@ -287,7 +286,7 @@ SERIALISE_TYPE(Pattern::, "Pattern", { ) ) },{ - s.item(m_binding); + //s.item(m_binding); Pattern::Data::Tag tag; s % tag; switch(tag) |