summaryrefslogtreecommitdiff
path: root/src/expand/mod.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2018-12-30 15:58:13 +0800
committerJohn Hodge <tpg@ucc.asn.au>2018-12-30 15:58:13 +0800
commit48ea151b6fed48d96af12cbcc9137db49fcd5996 (patch)
treeadfe1e7c60c58c14de787df1d5a4f497bc181e06 /src/expand/mod.cpp
parent44d040f6d4325f713b9fefeadb1ee533a0fd5294 (diff)
downloadmrust-48ea151b6fed48d96af12cbcc9137db49fcd5996.tar.gz
Expand - Handle #[cfg]-d enum variants
Diffstat (limited to 'src/expand/mod.cpp')
-rw-r--r--src/expand/mod.cpp9
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);