diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/expand/mod.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/expand/mod.cpp b/src/expand/mod.cpp index 2ca45d99..57b44479 100644 --- a/src/expand/mod.cpp +++ b/src/expand/mod.cpp @@ -332,7 +332,12 @@ struct CExpandExpr: void visit(::std::unique_ptr<AST::ExprNode>& cnode) { if(cnode.get()) - Expand_Attrs(cnode->attrs(), AttrStage::Pre, [&](const auto& sp, const auto& d, const auto& a){ d.handle(sp, a, this->crate, cnode); }); + { + auto attrs = mv$(cnode->attrs()); + Expand_Attrs(attrs, AttrStage::Pre, [&](const auto& sp, const auto& d, const auto& a){ d.handle(sp, a, this->crate, cnode); }); + if(cnode.get()) + cnode->attrs() = mv$(attrs); + } if(cnode.get()) { cnode->visit(*this); |