diff options
author | John Hodge <tpg@ucc.asn.au> | 2018-12-30 15:58:13 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2018-12-30 15:58:13 +0800 |
commit | 48ea151b6fed48d96af12cbcc9137db49fcd5996 (patch) | |
tree | adfe1e7c60c58c14de787df1d5a4f497bc181e06 /src/expand/mod.cpp | |
parent | 44d040f6d4325f713b9fefeadb1ee533a0fd5294 (diff) | |
download | mrust-48ea151b6fed48d96af12cbcc9137db49fcd5996.tar.gz |
Expand - Handle #[cfg]-d enum variants
Diffstat (limited to 'src/expand/mod.cpp')
-rw-r--r-- | src/expand/mod.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/expand/mod.cpp b/src/expand/mod.cpp index 4dfd1224..f63f7ab5 100644 --- a/src/expand/mod.cpp +++ b/src/expand/mod.cpp @@ -1188,6 +1188,15 @@ void Expand_Mod(::AST::Crate& crate, LList<const AST::Module*> modstack, ::AST:: ) Expand_Attrs(var.m_attrs, AttrStage::Post, [&](const auto& sp, const auto& d, const auto& a){ d.handle(sp, a, crate, var); }); } + // Handle cfg on variants (kinda hacky) + for(auto it = e.variants().begin(); it != e.variants().end(); ) { + if( it->m_name == "" ) { + it = e.variants().erase(it); + } + else { + ++ it; + } + } ), (Union, Expand_GenericParams(crate, modstack, mod, e.m_params); |