summaryrefslogtreecommitdiff
path: root/src/hir/visitor.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-10-31 10:01:41 +0800
committerJohn Hodge <tpg@mutabah.net>2016-10-31 10:01:41 +0800
commitfc7239e7271e879102272ea4d7e98f87f027ee84 (patch)
tree8134b59f26d6901b0eefc7709bb4ad40afda7f11 /src/hir/visitor.cpp
parentea043a43eeff8512396afc166ca1d0085873c57d (diff)
downloadmrust-fc7239e7271e879102272ea4d7e98f87f027ee84.tar.gz
All - Rough support for `union` (data structure present in all stages)
Diffstat (limited to 'src/hir/visitor.cpp')
-rw-r--r--src/hir/visitor.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/hir/visitor.cpp b/src/hir/visitor.cpp
index 64458901..c489e053 100644
--- a/src/hir/visitor.cpp
+++ b/src/hir/visitor.cpp
@@ -55,6 +55,10 @@ void ::HIR::Visitor::visit_module(::HIR::ItemPath p, ::HIR::Module& mod)
DEBUG("struct " << name);
this->visit_struct(p + name, e);
),
+ (Union,
+ DEBUG("union " << name);
+ this->visit_union(p + name, e);
+ ),
(Trait,
DEBUG("trait " << name);
this->visit_trait(p + name, e);
@@ -223,6 +227,12 @@ void ::HIR::Visitor::visit_enum(::HIR::ItemPath p, ::HIR::Enum& item)
)
}
}
+void ::HIR::Visitor::visit_union(::HIR::ItemPath p, ::HIR::Union& item)
+{
+ this->visit_params(item.m_params);
+ for(auto& var : item.m_variants)
+ this->visit_type(var.second.ent);
+}
void ::HIR::Visitor::visit_function(::HIR::ItemPath p, ::HIR::Function& item)
{
this->visit_params(item.m_params);