diff options
author | John Hodge <tpg@ucc.asn.au> | 2017-11-01 20:46:36 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2017-11-01 20:46:36 +0800 |
commit | cb271f8ea98d1a5c65a5e636a0e73a85710027b4 (patch) | |
tree | 9694427c074c0e0d581cde6e01b6167016e0f844 /src/hir_expand/closures.cpp | |
parent | 8306f43ccdf0414b48891aa5eb04d8901899c052 (diff) | |
download | mrust-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.cpp | 19 |
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 |