diff options
Diffstat (limited to 'src/hir/from_ast.cpp')
-rw-r--r-- | src/hir/from_ast.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/hir/from_ast.cpp b/src/hir/from_ast.cpp index f3a41207..878e7d4c 100644 --- a/src/hir/from_ast.cpp +++ b/src/hir/from_ast.cpp @@ -1055,14 +1055,16 @@ public: auto& macros = rv.m_exported_macros; // - Extract macros from root module - for( const auto& mac : crate.m_root_module.macros() ) { + for( /*const*/ auto& mac : crate.m_root_module.macros() ) { //if( mac.data.export ) { - macros.insert( ::std::make_pair( mac.name, mv$(*mac.data) ) ); + MacroRulesPtr& mrp = mac.data; + MacroRules mac_data = mv$(*mrp); + macros.insert( ::std::make_pair( mac.name, mv$(mac_data) ) ); //} } - for( const auto& mac : crate.m_root_module.macro_imports_res() ) { + for( auto& mac : crate.m_root_module.macro_imports_res() ) { //if( mac.data->export ) { - macros.insert( ::std::make_pair( mac.name, *mac.data ) ); + macros.insert( ::std::make_pair( mac.name, mv$(*const_cast<MacroRules*>(mac.data)) ) ); //} } |