summaryrefslogtreecommitdiff
path: root/src/hir_expand/closures.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-11-01 20:46:36 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-11-01 20:46:36 +0800
commitcb271f8ea98d1a5c65a5e636a0e73a85710027b4 (patch)
tree9694427c074c0e0d581cde6e01b6167016e0f844 /src/hir_expand/closures.cpp
parent8306f43ccdf0414b48891aa5eb04d8901899c052 (diff)
downloadmrust-cb271f8ea98d1a5c65a5e636a0e73a85710027b4.tar.gz
HIR - Refactor enums to only embed a single field (and give variants types)
Diffstat (limited to 'src/hir_expand/closures.cpp')
-rw-r--r--src/hir_expand/closures.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/hir_expand/closures.cpp b/src/hir_expand/closures.cpp
index 3b0fb6a4..8a90c037 100644
--- a/src/hir_expand/closures.cpp
+++ b/src/hir_expand/closures.cpp
@@ -1121,16 +1121,19 @@ namespace {
void visit_enum(::HIR::ItemPath p, ::HIR::Enum& item) override {
//auto _ = this->m_ms.set_item_generics(item.m_params);
- //auto enum_type = ::HIR::TypeRef(::HIR::CoreType::Isize);
- for(auto& var : item.m_variants)
+ /*
+ if(const auto* e = item.m_data.opt_Value())
{
- TU_IFLET(::HIR::Enum::Variant, var.second, Value, e,
- //DEBUG("Enum value " << p << " - " << var.first);
- //::std::vector< ::HIR::TypeRef> tmp;
- //ExprVisitor_Extract ev(m_resolve, tmp, m_new_trait_impls);
- //ev.visit_root(*e);
- )
+ auto enum_type = ::HIR::TypeRef(::HIR::CoreType::Isize);
+ for(auto& var : e->variants)
+ {
+ DEBUG("Enum value " << p << " - " << var.name);
+ ::std::vector< ::HIR::TypeRef> tmp;
+ ExprVisitor_Extract ev(m_resolve, tmp, m_new_trait_impls);
+ ev.visit_root(var.expr);
+ }
}
+ */
}
void visit_trait(::HIR::ItemPath p, ::HIR::Trait& item) override