summaryrefslogtreecommitdiff
path: root/src/ast/pattern.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2016-06-04 23:44:25 +0800
committerJohn Hodge <tpg@ucc.asn.au>2016-06-04 23:44:25 +0800
commitb745c5f88faf89af9a487b7cf0cfc362b73c0423 (patch)
treee2b99aeaa80dc08cd96382c9be94e9c2a880a50a /src/ast/pattern.cpp
parent31bff06cbd7b208096958edb21c4a50e17b6e9f5 (diff)
downloadmrust-b745c5f88faf89af9a487b7cf0cfc362b73c0423.tar.gz
Resolve - Fix variable resolution and pattern binding
Diffstat (limited to 'src/ast/pattern.cpp')
-rw-r--r--src/ast/pattern.cpp11
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)